作者:阮一峰 http://www.ruanyifeng.com/blog/2011/03/url_hash.html 一、#的涵义 #代表网页中的一个位置。其右面的字符,就是该位置的标识符。...二、HTTP请求不包括# #是用来指导浏览器动作的,对服务器端完全无用。所以,HTTP请求中不包括#。...比如,下面URL的原意是指定一个颜色值: http://www.example.com/?color=#fff 但是,浏览器实际发出的请求是: GET /?...五、改变#会改变浏览器的访问历史 每一次改变#后的部分,都会在浏览器的访问历史中增加一个记录,使用"后退"按钮,就可以回到上一个位置。...八、Google抓取#的机制 默认情况下,Google的网络蜘蛛忽视URL的#部分。 但是,Google还规定,如果你希望Ajax生成的内容被浏览引擎读取,那么URL中可以使用"#!"
一、动态 URL 构建的重要性在开发过程中,我们常常需要根据不同的参数动态构建 URL。...二、Kotlin 中的 HTTP 请求库在 Kotlin 中,有多种方式可以发送 HTTP 请求,例如使用原生的 java.net.HttpURLConnection,或者借助第三方库。...三、Fuel 库简介Fuel 是一个基于 Kotlin 的 HTTP 客户端库,它支持同步和异步请求,提供了简洁的 API,使得发送 HTTP 请求变得非常简单。...错误处理与日志记录在实际开发中,错误处理和日志记录是必不可少的。可以通过以下方式优化代码:错误处理:在捕获异常时,记录详细的错误信息,并根据错误类型进行不同的处理。...Kotlin中实现动态URL构建,并结合Fuel库发送HTTP请求。
一、动态 URL 构建的重要性 在开发过程中,我们常常需要根据不同的参数动态构建 URL。...二、Kotlin 中的 HTTP 请求库 在 Kotlin 中,有多种方式可以发送 HTTP 请求,例如使用原生的 java.net.HttpURLConnection,或者借助第三方库。...三、Fuel 库简介 Fuel 是一个基于 Kotlin 的 HTTP 客户端库,它支持同步和异步请求,提供了简洁的 API,使得发送 HTTP 请求变得非常简单。...错误处理与日志记录 在实际开发中,错误处理和日志记录是必不可少的。可以通过以下方式优化代码: 错误处理:在捕获异常时,记录详细的错误信息,并根据错误类型进行不同的处理。...Kotlin中实现动态URL构建,并结合Fuel库发送HTTP请求。
一、kotlin如何抛异常 Kotlin中的异常处理与Java或者其他语言中的处理方式相似。一个函数可以以正常方式结束,或者当错误发生的时候抛出异常。...Kotlin中的异常处理语句的基本形式和Java是相似的: java中: if(0 <= percentage <= 100){ throw new IllegalArgumentException...( "A percentage value must be between 0 and 100: $percentage") ; } kotlin中:(和java的区别,不必使用new来创建实例) if...kotlin和Java最大的不同是不需要throws子句。...四、总结 1、kotlin中的异常处理和java处理相似,除了Kotlin不要求你声明函数可以抛出的异常。 2、如果一个try代码块执行一切正常,代码块中最后一个表达式就是结果。
java中的可变参数一致。...这里等待后面具体来看什么时候非内联 在 Kotlin 中,我们可以只使用一个正常的、非限定的 return 来退出一个命名或匿名函数。...,则调用中的圆括号可以完全省略。...这意味着 lambda 表达式中的 return 将从包含它的函数返回,而匿名函数中的 return 将从匿名函数自身返回。...可以实现dsl风格的代码全靠它 Kotlin 提供了使用指定的 接收者对象 调用函数字面值的功能。 可以调用该接收者对象上的方法而无需任何额外的限定符,可以任意调用接受者的方法和属性。
Kotlin 中的 扩展 到底是什么?...简单使用: 扩展函数 //要扩展哪个类中的方法,被扩展的类名就是哪个 fun 被扩展的类名.扩展函数名(..参数..){ 函数体 } 例如: 在Array中扩展一个元素交换的方法 fun ArrayKotlin 的扩展是一个很独特的功能, Java 本身并不支持扩展, Kotlin 为了让扩展能在JVM平台上运行,必须做一些独特的处理 Kotiin 支持扩展方法和扩展属性 扩展的实现机制 Java...但现在 Kotlin 的扩展却好像可以动态地为一个类增加新的方法,而且不需要重新修改该 类的源代码,那 Kotlin 扩展的实际情况是怎样的呢?难道 Kotlin 可以突破 NM 的限制?...实际上, Kotlin 的扩展并没有真正地修改所扩展的类,被扩展的类还是原来的类,没有任 何改变。
About Kotlin(2) 继续昨天的部分。介绍Kotlin中的类。...Kotlin中的类 抽象类和接口 抽象类 跟Java一样,使用abstract关键字 open class Base{ open fun f(){} } abstract class Derived...其实是一组类的集合。可以用来表示受限的类的继承结构。 其也可以有子类,所有子类也必须在相同的文件中声明。...val demo = Outer().Inner().foo() 嵌套类 不用inner标记,直接写在类的内部的类,在kotlin中称为所谓的嵌套类 class Outer{ private val...接下来,也还是会按照参考文章的这个思路。记录Kotlin中的属性。方法。修饰符。
About Kotlin(1) 因为是从Java的角度来学习Kotlin,在Java中,类作为第一等公民。故学习Kotlin,也先从其的类开始。...Kotlin中的类 普通的类 class Kotlin中没有添加修饰符直接以class开头的都是final类。final类的意义在于JVM可能存在的优化(常量和方法内联)和防止继承的滥用。...构建这样的对象需要写很多代码。 对应的Open类 对应上面的类,kotlin中的open类就是能够被继承的了。必须在类声明的时候使用open关键字。...//Kotlin中所有类的父类是Any,类似于Object,不过Any不输于java.lang.Object,其有三个方法 //这里的operator是操作符重载,在Kotlin中的符号中会说明 public...在Kotlin中,override不是可选的注解而是强制关键字。所以由此引发的bug就不会再有了,编译器会提前警告你。Kotlin把这些事清楚的展现出来。
一个网址url分段解析如图 image.png 主要是对nodejs中的url模块 在拿到url的时候 对url的一种解析操作 例如 const url = require('url'); let...user=123&ps=456#nihao'; let urlObj = url.parse(urlString); console.log(urlObj) 将urlString 解析成对象;例如 图...image.png 相反也可以将图中对象反解析成url字符串。...url.format(obj) 即可。 总结 如图 image.png
万物皆对象 对象就是类的实例化 用Kotlin描述对象 class Friend{ var name: String = "" var hairColor: String...val name: String = name val age: Int = age init{ } } 次构造 次构造函数体写在Friend类定义的大括号中...,也就是代码块中。...我们把这个函数属性定义为变量是为了可以日后进行改变以进行来个数的新的操作,在方法operation中,我们执行了这个函数,当然,一个属性能够当成函数来执行是不是很神奇呢?...这就是Kotlin函数式编程的魅力!
1.表达式函数体 通过下面这个简单的例子看下函数声明相关的概念,函数声明的关键字是fun,嗯,比JS的function还简单。 Kotlin中参数类型是放在变量:后面,函数返回类型也是。...4.顶层函数 不同于Java中函数只能定义在每个类里面,Kotlin采用了JavaScript 中的做法,可以在文件任意位置处定义函数,这种函数称为顶层函数。...自己的库一样,在Kotlin中Collection就是这么干的。...,在Java中可以抽取出独立的函数,但这样有时候对整体结构并不太好,Kotlin提供了局部函数来解决这个问题。...如果不支持Lambda都不好意思称自己是一门现代语言,来看看Kotlin中的表演。
聊聊Kotlin中的lambda 本质 kotlin中的lambda使用创建类和调用类实现。...其实java中是通过invokedynamic指令实现的,其本质是运行时进行替换对应的Lambda中的代码 好处 1.运行时替换,相比较Kotlin直接写死创建类的方式性能更好 2.在class文件中只有这个指令...,不像kotlin需要设置很多不必要的信息 Kotlin的优化 为什么不去直接使用java的那个指令呢?...原因很简单,Kotlin是基于java 6开发的,而java的这个优化是在java 7才出现的,所以为了兼容只能另辟蹊径。 虽然无法实现,但是我们可以借鉴java中的做法对吧?...inline关键字 Kotlin中可以使用inline将inline修饰的方法复制到调用方。被inline修饰的方法也叫作内联函数。
首先,在 Java 中 synchronized 是一个关键字,在Kotlin 中是一个函数。.... */ @file:kotlin.jvm.JvmMultifileClass @file:kotlin.jvm.JvmName("StandardKt") package kotlin import...可以看出:这里边也是有monitorenter和monitorexit的,所以做出推测,不管synchronized是java中的关键字还是kotlin中的函数,最终被编译成的字节码是一样的。...synchronized用的锁是存储在Java对象头的Mark Word中的。...JVM可以从 方法常量池 中的 方法表结构(method_info Structure) 中的 ACC_SYNCHRONIZED 访问标志来辨别一个方法是否声明为同步方法。
Kotlin中的内联函数还是挺好玩的 为什么需要内联函数? lambda 表达式会被正常地编译成匿名类。这表示每调用一次 lambda表达式,一个额外的类就会被创建。...数组元素依次排列" for (item in array) { str = str + item.toString() + ", " } t v_function_result.text = st } Kotlin...中Int、Long、Double都继承自Number,但是,如果我们在调用上面的函数时,传入了Array,这样是会报错的!!...因为 kotlin中在调用函数时要求参数类名必须完全一致!! 对于上面的函数,如果我们想既可以接收 Array, 也可以接收Array, 那么就可以定义一个具体化类型参数的内联函数....数组元素依次排列" for (item in array) { str = str + item.toString() + ", " } p rintln(str) } ``` > 调用 ```kotlin
很多同学刚上手使用Kotlin知道它有针对Java NullPointerException的管理,而在Kotlin中?和!!...不懂就问百度呀,确实有人解释它们的区别,比如: 这是输入 "kotlin ?和!!" 搜索到的百度第一条答案,确实这位说的没错。...然而如果在KT中,在调用myList的时候在它后面加上一个问号myList?.size(),当myList为null的时候直接会打印List Size = null并不会有null异常出现。...是一种安全的写法,它体现了Kotlin null safety的特性。KT的语法很灵动,定义参数还可以写成 val room: Room?...当然Kotlin不会让程序出现这种啰嗦的代码,所以里面提供了对象A ?: 对象B表达式,并且取消了Java中的条件表达式 ? 表达式1 : 表达式2这个三元表达式。 ?
配置文件为_config.yml 在配置文件中添加配置类似于 permalink: /:categories/:year-:month-:day-:title.html 可用的参数值 year...文章的年份:如2014 short_year 文章的年份,不包含世纪,如:14 month 文章的月份 i_month 文章的月份,去掉前置的0 day 文章的日期 i_day...文章的日期,去掉前置的0 categories 文章的分类,如果文章没分类,生成url时会将其忽略 内置搭配 date/:categories/:year/:month/:day/:title.html...permalink: date permalink: pretty permalink: none 自定义搭配 /:categories/:year/:month/:day/:title.html 默认的搭配.../:categories/:title.html 最精简的配置 /:categories/:year-:month-:day-:title.html 我的配置 /:year-:month-:day/
对于这种类型的题目,一般采用分治策略 ,即:把一个文件中的 URL 按照某个特征划分为多个小文件,使得每个小文件大小不超过 4G,这样就可以把这个小文件读到内存中进行处理了。...使用同样的方法遍历文件 b,把文件 b 中的 URL 分别存储到文件 b0, b1, b2, ..., b999 中。...这样处理过后,所有可能相同的 URL 都在对应的小文件中,即 a0 对应 b0, ..., a999 对应 b999,不对应的小文件不可能有相同的 URL。...那么接下来,我们只需要求出这 1000 对小文件中相同的 URL 就好了。 接着遍历 ai( i∈[0,999] ),把 URL 存储到一个 HashSet 集合中。...然后遍历 bi 中每个 URL,看在 HashSet 集合中是否存在,若存在,说明这就是共同的 URL,可以把这个 URL 保存到一个单独的文件中。
Django获取URL中的数据 URL中的参数一般有两种形式。...q=Django&t=blog&u=zy010101 我们将第一种形式称为“URL路径参数”;第二种形式称为“URL关键字形式”。下面讲述如何在Django中获取这两种形式的数据。...在此之前,需要说明的是,在URL中携带数据的方式一般是前端发起的GET请求,至于为什么GET请求不在请求体中携带参数,可以参考这篇文章:关于在GET请求中使用body URL路径参数 使用path函数...为了防止有时候进不去文档,我将官方文档也直接贴在下面: 使用re_path函数 如果,使用path函数并不能满足你匹配URL的要求,那么可以使用re_path函数来使用正则表达式来匹配URL路径中的参数...需要注意在Django中,使用正则表达式来获取分组中的值的语法是(?Ppattern),其中 name 是组名,pattern 是要匹配的模式。
js获取url中的参数 function getRequestPars() { var url = location.search;...//获取url中"?"...符后的字串 var theRequest = new Object(); if (url.indexOf("?") !...= -1) { var str = url.substr(1); strs = str.split("&"); for(var i = 0; i < strs.length