语言构成
字面量
Kotlin 为基本类型 (数字, 字符, 布尔值, 字符串) 提供字面量.
- var intLiteral = 5
- var doubleLiteral = .02
- var stringLiteral = "Hello"
- var charLiteral = '1'
- var boolLiteral = true
变量
变量变量用来操纵数据, 更确切地说是一个值. 值是可以存储, 操作, 打印, 推送或从网络中提取的内容. 为了用值, 需要将它们放在变量中. Kotlin 中的变量是通过使用 var 关键字后跟类型声明标识符来创建:
- >>> var foo: Int = 10
- >>> println(foo)
- 10
- >>> var foo = 10
- >>> println(foo)
- 10
- >>> var boo = .02 // 变量的类型可变
- >>> val a = 10 // val 用于声明常量, 后面不可改变
表达式和语句
表达式是运算符, 函数, 字面量, 变量或常量的组合, 始终解析为值. 语句可以包含表达式, 但是语句不会解析为值. 也不能成为其他语句的一部分. 它是封闭区块中的顶级元素.
赋值是 Java 中的表达式, 但是 Kotlin 中的语句. 这意味着不能将赋值操作作为参数传递给 while 循环语句.
在 Kotlin 中, 大多数控制结构 (除了 do 和 do / while) 是表达式, 而在 Java 中它们是语句.
关键词
关键词是对编译器有特殊意义的保留词, 它们不能用作标识符, 例如类, 变量名, 函数名和接口名等.
Kotlin 有硬, 软和修饰关键词.
硬关键字始终被解释为关键字, 并不能用作标识符. 比如: break, class, continue, do, else, false, while, this, throw, try, super, when.
软关键词在某些上下文中充当保留字; 否则, 它们可以用作常规标识符比如: file, finally, get, import, receiver, set, constructor,delegate, get, by, where.
修饰关键词. 这些东西在声明的修饰符列表中充当保留字; 否则, 它们可以用作标识符. 比如 abstract, actual, annotation, companion, enum, final,infix, inline, lateinit, operator, open..
空格
Kotlin 不像 python 一样用空格来缩进.
操作符
图片. PNG
图片. PNG
图片. PNG
块
块用于组合语句. 用花括号对表示, 比如:
- class Person(val name: String) {
- }
- interface Human {
- fun walk()
- fun talk()
- }
- fun main(args: Array<String>) {
- greet("John")
- }
- fun greet(name:String) {
- println("Hello $name")
- }
- var counter = 0
- while (counter++ != 5) {
- println("counter $counter")
- }
- val num = "1"
- val ans = try {
- Integer.parseInt(num)
- }
- catch(e:Exception) {
- e.printStackTrace()
- }
注释
- // This statement will be ignored
- var a = 0 // so will this line
- /*
- Everything inside the pair of these slashes
- and asterisks will be ignored by the
- compiler
- */
- /**
- This is an example documentation using KDoc syntax
- @author Ted Hagos
- @constructor
- */
- class Person(val name: String) {
- /**
- This is another KDoc comment
- @return
- */
- fun foo(): Int{
- }
- }
参考资料
python 测试开发项目实战 - 目录 https://china-testing.github.io/practices.html
python 工具书籍下载 - 持续更新 https://china-testing.github.io/python_books.html
python 3.7 极速入门教程 - 目录 https://china-testing.github.io/python3_quick.html
讨论 qq 群 630011153 144081101
- var a = 10L // a is a Long literal, note the L postfix
- var b = 20
- var a = b.toLong() // this will work
- var a = 100 // Int literal
- var b = 10L // Long literal
- var oneMillion = 1_000_000
- var creditCardNumber = 1234_5678_9012_3456
- var a = 3.1416 // Double literal
- var b = 2.54F // Float literal
- var b = 2.54f // Float literal
- >>> val a = 'a'
- >>> println(a.isLowerCase()) // true
- true
- >>> println(a.isDigit()) // false
- false
- >>> println(a.toUpperCase()) // A
- A
- >>> val b: String = a.toString() // converts it to a String
- val str ="快速的棕色狐狸"
- for(i in str)println(i)
来源: http://www.jianshu.com/p/12b7353ca628