Kotlin的快速入门

Kotlin 快速入门:

Kotlin 的 Hello World :

#hellokotlin.kt
fun main(args:Array<String>){
     println("hello kotlin!");
}

Kotlin 的 变量和常量 :

1 // eclipse 中运行的快捷键是 ctrl + f11
2 fun main(args:Array<String>){
3     var i = 18;  //变量
4     println(i);
5
6     val number = "No.123456";  //Val is can‘t be reassigned! //不能再被修改了
7
8     println(number);
9 //    number = "No.159";  //此时不可以再被修改了

Kotlin的 常见容器的类型:

1 // eclipse 中运行的快捷键是 ctrl + f11
2 fun main(args:Array<String>){
3
4     var i = 18;  //这时是自动推断类型
5
6     var j:Int = 20; //显式指定j 的类型为Int
7 }

常见数据类型的取值范围:

 1 fun main(args:Array<String>){
 2     //Byte 的取值范围
 3     println(Byte.MAX_VALUE)
 4     println(Byte.MIN_VALUE)
 5
 6     //Short 的取值范围
 7     println(Short.MAX_VALUE)
 8     println(Short.MIN_VALUE)
 9
10     //Int 的取值范围
11     println(Int.MAX_VALUE)
12     println(Int.MIN_VALUE)
13
14     //Long 的取值范围
15     println(Long.MAX_VALUE)
16     println(Long.MIN_VALUE)
17 }

Kotlin的函数:

一些常见的函数:

(1)main函数:

它是默认执行的第一个程序,

1 fun main(args:Array<String>){
2     /*
3     * 代码
4     * */
5 }

(2)println() 函数:

它的作用是向控制台打印括号内的内容。

自定义函数:

 1 fun main(args:Array<String>):Unit{
 2     var a = 10
 3     var b = 5
 4     println(plus(a,b))
 5     println(sub(a,b))
 6     println(mul(a,b))
 7     println(div(a,b))
 8 }
 9 fun plus(a:Int,b:Int):Int{
10     return a+b
11 }
12 fun sub(a:Int,b:Int):Int{
13     return a-b
14 }
15 fun mul(a: Int,b: Int):Int{
16     return a*b
17 }
18 fun div(a: Int,b:Int):Int{
19     return a/b
20 }

Kotlin的boolean:

true 表示真, false 表示假。

1 fun main(args:Array<String>){
2     var num1 = Math.sqrt(5.0) -Math.sqrt(4.0)
3     var num2 = Math.sqrt(4.0) - Math.sqrt(3.0)
4
5     print(num1>num2) //false
6 }
1 fun main(args:Array<String>){
2     var num1 = Math.pow(2.0,100.0)  //注:类型要是double
3     var num2 = Math.pow(3.0,75.0)
4
5     print(num1>num2) //false
6 }

Kotlin 的字符串模板:

1 fun main() {
2     test()
3 }
4 fun test(){
5     var name = "Guido"
6     var a = "Life is short,I learn Python! ---${name}"  //${}
7     println(a)
8 }

Kotlin 的if else 流程控制:

1 fun test(){
2     var a = 5
3     var b = 10
4     if (a>b){
5         println("a比b大")
6     }else{
7         println("b比a大")
8     }
9 }
 1 fun main() {
 2     test()
 3 }
 4 fun test(){
 5     var a = 5
 6     var b = 10
 7     if (a>b){
 8         println("a比b大")
 9     }else if(a==b){
10         println("a与b相同")
11     }
12     else{
13         println("b比a大")
14     }
15 }

Kotlin 的字符串比较:

 1 fun main() {
 2     test()
 3 }
 4 fun test(){
 5     var str1 = "tom"
 6     var str2 = "tom"
 7
 8     println(str1 == str2) //true
 9     println(str1.equals(str2))//true
10
11     var str3 = "Jack"
12     var str4 = "jack"
13     println(str3.equals(str4,true)) //true 表示忽略大小写
14     println(str3.equals(str4,false)) //true 表示忽略大小写
15
16
17 }

Kotlin 的空值处理:

null 也是值,它表示没有东西,没有数据。

 1 fun test(str:String):String{
 2     return "Hello "+str
 3 }
 4
 5 fun main(){
 6     var ret = test("Python")
 7     println(ret)
 8     //上面是正常的
 9 //  var ret1 = test(null)  // 直接就报错了
10 }
 1 fun test(str:String?):String{
 2     return "Hello "+str
 3 }
 4
 5 fun main(){
 6     //如果一定要传null 的话
 7     //可以在形参的后面加个?
 8     var ret = test(null)
 9     println(ret)  //Hello null
10 }

Kotlin 的When表达式:

类似于c/java 中的switch 语句

 1 fun test1(score:Int){
 2     when(score){
 3         10 -> println("满分")
 4         9 -> println("优秀")
 5         8 -> println("优秀")
 6         7 -> println("还可以")
 7         6 -> println("及格")
 8         else -> println("不及格")
 9     }
10 }
11 fun test(){
12     test1(9)
13 }
14
15 fun main(){
16     test()
17 }

Kotlin 的Loop 和Range :

 1 fun test1(){
 2 ////////////////////////全闭区间/////////////////////////////
 3 //    var nums = 1 .. 100  //[1-100]
 4 //    for (num in nums ){
 5 //        print("${num}, ")
 6 //    }
 7 ////////////////////////全闭区间/////////////////////////////
 8 ////////////////////////左闭右开区间/////////////////////////////
 9 //    var nums = 1 until 100  //[1-100)
10 //    for (num in nums ){
11 //        print("${num}, ")
12 //    }
13 ////////////////////////左闭右开区间/////////////////////////////
14 ////////////////////////设置步长/////////////////////////////
15 //    var nums = 1 ..16
16 //    for(num in nums step 2){
17 //        print("${num}, ")
18 //    }
19 ////////////////////////设置步长/////////////////////////////
20 ////////////////////////序列常用的方法/////////////////////////////
21 //    var nums = 1 .. 16
22 //    var nums2 = nums.reversed()
23 //    println(nums2)  //16 downTo 1 step 1
24 //    for (num in nums2 ){
25 //        print("${num}, ") //16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,
26 //    }
27 //    println(nums.count()) // 总数为: 16
28 ////////////////////////序列常用的方法/////////////////////////////
29
30 }
31 fun test(){
32     test1()
33 }
34
35 fun main(){
36     test()
37 }

Kotlin 的List和Map:

List: 类似于Python 中的列表

 1 fun test1(){
 2     var lists = listOf<String>("hello","world","python","life")
 3 //    println(lists)  [hello, world, python, life]
 4
 5 //    for(list in lists){
 6 //        println(list)
 7 //    }
 8
 9     for((idx,value) in lists.withIndex()){  //可以将索引也打印出来
10         println("$idx $value")
11 //        println("${idx} ${value}")
12     }
13
14 }
15 fun test(){
16     test1()
17 }
18
19 fun main(){
20     test()
21 }

map  :类似Python 中的字典

 1 import java.util.TreeMap
 2 fun test1(){
 3     var map = TreeMap<String,Int>()  //要从 java.util.TreeMap
 4     map["tom"] = 10
 5     map["jane"] = 20
 6     map["jack"] = 30
 7     map["john"] = 40
 8
 9     println(map)  //{jack=30, jane=20, john=40, tom=10}
10     for((key,value) in map){
11         println("Nmae: $key\tAge: $value")
12     }
13 }
14 fun test(){
15     test1()
16 }
17
18 fun main(){
19     test()
20 }

原文地址:https://www.cnblogs.com/zach0812/p/11428871.html

时间: 2024-08-01 01:13:25

Kotlin的快速入门的相关文章

Kotlin学习快速入门(2)——条件 数组 循环 方法

条件 if条件判断 常用的判断和Java一样,这里提一下不同的用法 1.if可以作为三元运算符 val max = if (a > b) a else b 2.使用in判断是否在某个区间 val x = 1 //相当于条件 1<= x <=8 if(x in 1..8){ println("在区间内") } //与上面的条件相反 if(x !in 1..8){ ... } 3.is关键字类型转换 相当于Java中instanceof关键字 使用了is,kotlin已经

Kotlin学习快速入门(5)——空安全

介绍 kotlin中,对象可分为两种类型,可为空的对象和不可为空对象 默认为不可为空对象,代码检测如果发现不可为空对象赋予了null,则会标红报错. 可为空的对象,如果调用了方法,代码检测也会标红报错 var s: String = "hello" //不可为空 s = null//标红报错 var s: String? = "hello" s=null //代码检测通过 println(s.length)//标红报错 调用可为空对象的属性或方法 这样的好处就是,如

Kotlin快速入门(一)基础

Kotlin快速入门(一)基础 Kotlin学习笔记,主要记录与Java不同的地方. 1 基本类型 1.1 数字 1)数字没有隐式扩宽转换 val b: Byte = 1 // OK, 字面值是静态检测的 val i: Int = b // 错误 但我们可以显示转换 val i: Int = b.toInt() 上下文推断转换类型是可以的 val l = 1L + 3 // Long + Int => Long 2)Kotlin中字符不是数字,但字符可以显示转换为数字 fun check(c:

Kotlin基础(一)Kotlin快速入门

Kotlin快速入门 一.函数 1 /* 2 * 1.函数可以定义在文件最外层,不需要把它放在类中 3 * 2.可以省略结尾分号 4 * */ 5 fun main(args: Array<String>) { 6 println(max2(1,2)) 7 println(max(3,5)) 8 } 9 10 fun max(a: Int, b: Int): Int{ 11 return if (a>b) a else b 12 } 13 14 /* 15 * 与Java不同,Kotli

微服务的入门级微框架Spring Boot快速入门

详情请交流  QQ  709639943 00.微服务的入门级微框架Spring Boot快速入门 00.基于java的微信公众号二次开发视频教程 00.leetcode 算法 面试 00.北风网 零基础到数据(大数据)分析专家-首席分析师 00.快速上手JMeter 00.Jmeter 00.2017年Java web开发工程师成长之路 00.R语言速成实战 00.R语言数据分析实战 00.Python+Django+Ansible Playbook自动化运维项目实战 00.Java深入微服务

《Android构建MVVM》系列(一) 之 MVVM架构快速入门

前言 本文属于<Android构建MVVM>系列开篇,共六个篇章,详见目录树. 该系列文章旨在为Android的开发者入门MVVM架构,掌握其基本开发模式. 辅以讲解Android Architecture Components,使得更好的实现MVVM架构. 目录树 <Android构建MVVM>系列(一) 之 MVVM架构快速入门 前言 分层思想 什么是MVC/MVP? MVVM是什么,与MVC/MVP有何区别? Android Architecture Components(架

Spring Boot 2.x基础教程:快速入门

简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用! Spring Boot让我们的Spring应用变的更轻量化.我们不必像以前那样繁琐的构建项目.打包应用.部署到Tomcat等应用服务器中来运行我们的业务服务.通过Spring Boot实现的服务,只需要依靠一个Java类,把它打包成jar,并通过j

【Java】Spring快速入门(一)

Spring介绍 Spring可以轻松创建Java企业应用程序.它提供了在企业环境中使用Java语言所需的一切,支持Groovy和Kotlin作为JVM上的替代语言,并可根据应用程序的需要灵活地创建多种体系结构.从Spring Framework 5.1开始,Spring需要JDK 8+(Java SE 8+),并为JDK 11 LTS提供开箱即用的支持. Spring Framework最重要的是控制反转(IoC)容器.Spring框架的IoC容器的全面处理紧随其后,全面覆盖了Spring的面

笔记:Spring Cloud Zuul 快速入门

Spring Cloud Zuul 实现了路由规则与实例的维护问题,通过 Spring Cloud Eureka 进行整合,将自身注册为 Eureka 服务治理下的应用,同时从 Eureka 中获取了所有其他微服务的实例信息,这样的设计非常巧妙的将服务治理体系中维护的实例信息利用起来,使得维护服务实例的工作交给了服务治理框架自动完成,而对路由规则的维护,默认会将通过以服务名作为 ContextPath 的方式来创建路由映射,也可以做一些特别的配置,对于签名校验.登录校验等在微服务架构中的冗余问题