kotlin学习 - Kotlin 循环
1 |
|
1 |
|
1 | //从 10 到 1 |
1 | //从 1 到 10 步长为 2 |
repeat(count:Int) 一个高阶的循环函数,count代表循环的次数,在函数内,it代表到第几次
注意:it是从0开始计数的
1 | //从 0 到 9 |
1 |
|
1 |
|
1 |
|
1 |
|
1 | //从 10 到 1 |
1 | //从 1 到 10 步长为 2 |
repeat(count:Int) 一个高阶的循环函数,count代表循环的次数,在函数内,it代表到第几次
注意:it是从0开始计数的
1 | //从 0 到 9 |
1 |
|
1 |
|
1 |
|
1 | class Book(var name: String, var price: Float) { |
1 | fun main(args: Array<String>) { |
1 | fun main(args: Array<String>) { |
如果在解构声明中不需要某个变量,那么可以用下划线_取代其名称,这样也就不会调用相应的componentN()操作符函数:
1 | val (_, price2) = Book("Kotlin入门", 66.6f) |
⼀种⽹络传输协议,位于 TCP / IP 协议族的最顶层——应⽤层。
Hypertext Transfer Protocol,超⽂本传输协议,和 HTML (Hypertext Markup Language 超⽂本标记语⾔) ⼀起诞⽣,⽤于在⽹络上请求和传输 HTML 内容。
三部分:协议类型、服务器地址(和端⼝号)、路径(Path)
协议类型://服务器地址[:端⼝号]路径
http://hencoder.com/users?gender=male
1 | GET /users/1 HTTP/1.1 |
对应 Retrofit 的代码:
1 | @GET("/users/{id}") |
1 | POST /users HTTP/1.1 |
对应 Retrofit 的代码:
1 | @FormUrlEncoded |
1 | PUT /users/1 HTTP/1.1 |
对应 Retrofit 的代码:
1 | @FormUrlEncoded |
1 | DELETE /users/1 HTTP/1.1 |
对应 Retrofit 的代码:
1 | @DELETE("/users/{id}") |
可以在下载文件时,先获取文件长度,是否这次断点续传等
作⽤:HTTP 消息的元数据( metadata )。
⽬标主机。注意:不是在⽹络上⽤于寻址的,⽽是在⽬标服务器上⽤于定位⼦服务器的。
指定 Body 的类型。主要有四类:
请求 Web ⻚⾯是返回响应的类型,Body 中返回 html ⽂本。
1 | HTTP/1.1 200 OK |
Web ⻚⾯纯⽂本表单的提交⽅式
1 | POST /users HTTP/1.1 |
对应 Retrofit 的代码:
1 | @FormUrlEncoded |
Web ⻚⾯含有⼆进制⽂件时的提交⽅式。
1 | POST /users HTTP/1.1 |
对应 Retrofit 的代码:
1 | @Multipart |
单项内容(⽂本或⾮⽂本都可以),⽤于 Web Api 的响应或者 POST / PUT 的请求
1 | //请求中提交 JSON |
对应 Retrofit 的代码:
1 | @POST("/users") |
1 | //响应中返回 JSON |
1 | //请求中提交⼆进制内容 |
对应 Retrofit 的代码:
1 | @POST("users/{id}/avatar") |
相应中返回⼆进制内容
1 | HTTP/1.1 200 OK |
指定 Body 的⻓度(字节)
⽤于当响应发起时,内容⻓度还没能确定的情况下。和 Content-Length 不同时使⽤。⽤途是尽早给出响应,减少⽤户等待。
1 | HTTP/1.1 200 OK |
指定重定向的⽬标 URL
⽤户代理,即是谁实际发送请求、接受响应的,例如⼿机浏览器、某款⼿机 App。
按范围取数据
作⽤:断点续传、多线程下载。
作⽤:在客户端或中间⽹络节点缓存数据,降低从服务器取数据的频率,以提⾼⽹络性能。
REST HTTP 即正确使⽤ HTTP。
* 使⽤资源的格式来定义 URL
* 规范地使⽤ method 来定义⽹络请求操作
* 规范地使⽤ status code 来表示响应状态
* 其他符合 HTTP 规范的设计准则
1 | //Test.kt |
1 | //Test.java |
1 | //Test.kt |
1 |
|
1 | fun main() { |
1 | //TestDemoKotlin.kt |
1 | //TestDemoJave.java |
用途 : 在某些条件下触发递归的函数,不希望被外部函数访问到的函数
1 | fun function() { |
1 | //TestDemoKotlin.kt |
1 | //TestDemoJave.java |
1 | * Function23.java |
1 |
|
1 | inline fun <T> lock(lock: Lock, body: () -> T): T { …… } |
1 | inline fun foo(inlined: () -> Unit, noinline notInlined: () -> Unit) { …… } |
修饰符 | 同类 | 同模块 | 子类 | 其他 |
---|---|---|---|---|
public(公开,默认) | √ | √ | √ | √ |
internal(模块) | √ | √ | - | - |
protected(受保护) | √ | - | √ | - |
private(私有) | √ | - | - | - |
修饰符 | 同类 | 同包 | 子类 | 不同包 |
---|---|---|---|---|
public(公开) | √ | √ | √ | √ |
protected(受保护) | √ | √ | √ | - |
没有修饰符(默认) | √ | √ | - | - |
private(私有) | √ | - | - | - |
1 | class Single private constructor() { |
1 | sealed class SuperCommand { |
1 |
|