Kotlin笔记二(Kotlin基础)
来源:互联网 发布:淘宝网男士加厚衬衣 编辑:程序博客网 时间:2024/06/11 16:07
第一个Kotlin程序,经典的Hello World打印,用一个函数来实现
fun main(args:Array<String>){
println(“Hello Wolrd”) //可以不用;结尾
}
变量声明
非指定类型
val answer="ok" val answer=42
指定类型
var answer: Int=1
如果变量没有初始化,则需要显式的指定它的类型
val answer: Int
answer=42
声明变量有俩个关键字val和var,区别如下:
val:不可变引用,使用val声明的变量不能在初始化之后再次复制,相当于Java中的final修饰符
var:可变引用,可以修改变量的值,但是不可以修改变量类型,例如var answer=1,修改为answer="ok",类型不匹配,会报错
类和属性:
我们在Java中定义一个类一般像
public class Person{
private String name;
public Person(String name){
this.name=name;
}
public String getName(){
return name;
}
}
然后我们把这段代码直接复制到kt文件当中,IDE工具会自动转换为kotlin代码如下:
class Person(val name: String)
很简短的一句话,这种类被称为值对象。把属性写到了类名后面,作用相当于构造器
重新顶一下这个类如:
class Person(
val name: String, //只读属性
var isOk: Boolean //可读可写属性
){}
Kotlin中使用:var person=Person("fisher",true)
println(person.name) //输出fisher
println(person.isOk) //输出Ok
自定义访问器
class Rectangle(val height: Int, var widht: Int){
var isSquare: Boolean
get(){
return height=width; //重新声明了get属性
}
}
枚举类:
enum class Color(var r: Int, var g:Int ,var b: Int)//声明了枚举常量的属性,r,g,b值
{
RRD(255,0,0),BLUE(0,0,255),GREEN(0,255,0);
fun rgb()=(r*256+g)*256+b
}
获取一个颜色的RGB值:println(Color.BLUE.rgb());
When处理枚举类,下面这段代码是展示了When的应用,对应Java的Switch
fun getColorMean(color: Color)=
when(color){
Color.RED -> "红色"
Color.BLUE-> "蓝色"
Color.GREEN-> "绿色"
}
println(getColorMean(Color.RED))//输出红色
when也可以把多个值合并到一个分支上,值之间用,隔开
转换为
fun getColorMean(color: Color)=when(color){Color.RED,Color.GREEN -> "原谅色"Color.BLUE-> "蓝色"}Kotlin中的when结构比Java中的switch要强大,switch必须使用(枚举常量,字符串或者数字字面值)作为分支条件,when允许使用任何对象。fun mixOptimized(c1: Color,c2: Color)=
when{
(c1==BLUE && c2==Red)->"黑色"
(c1==BLUE && c2==GREEN)->"很难看"
}
while循环和do...while循环使用和Java是一样的
for循环:Koltoin使用了区间概念,一个起始值,一个最终值,使用..来表示区间
有一个题目输出1-100内被3整除的数用fizz表示,被5整除的数用buzz表示,3和5的公倍数用fizzbuzz表示
fun fizzBuzz(i: Int)=when{
i%15 == 0 ->"FizzBuzz"
i%3 == 0 ->"Fizz"
i%5 == 0 ->"Buzz"
}
for(i in 1..100){
println(fizzBuzz(i))
}
用'in'来检查区间的成员
fun isLetter(c: Char) = c in 'a'..'z'
fun is NotDigit(c: Char) = c !in '0'..'9'
println(isLetter('q')) 输出true
println(isNotDigit('8')) 输出true //注:如果这行输入12会编译错误
in也可以当做when表达式
fun recognize(c: Char) = when (c){
in '0'..'9'->"It's a digit"
in 'a'..'z'->"It's a letter"
}
println(recognize('8')) 输出It's a digit
阅读全文
0 0
- Kotlin笔记二(Kotlin基础)
- Kotlin基础(二)
- Kotlin(二)-->基础语法
- Kotlin(二)-->基础语法
- Kotlin基础入门(二)
- kotlin学习笔记(二)
- kotlin学习笔记(二)
- Kotlin 分享 笔记(二)
- Kotlin学习笔记(二)
- kotlin学习笔记(二)
- Kotlin for Android(二)Kotlin基础语法
- Kotlin学习笔记(二):Kotlin与Java对比
- Kotlin学习笔记(二)---从零学习Kotlin
- Kotlin学习过程 二 Kotlin基础语法
- Kotlin入门基础笔记
- Kotlin基础笔记
- Kotlin笔记(二) : Kotlin与Java对比
- Kotlin Reference(二)-基础部分
- Hadoop集群nodes unhealthy解决方法
- Android MVP模式 简单易懂的介绍方式
- JAVA开发的23种设计模式之 --- 解释器模式
- Ceph PG 归置组状态
- java学习-GET方式抓取网页(UrlConnection和HttpClient) 参考
- Kotlin笔记二(Kotlin基础)
- 使用Spring的@Scheduled实现定时任务
- css——文本强制两行超出就显示省略号
- java创建泛型
- python 多线程 t.setDaemon(True):
- Glide工具类
- JDK1.8 十大新特性详解
- requests 和 scrapy 在不同的爬虫应用中,各自有什么优势?
- Java中MD5加密加盐算法