前言

本文适合人群 有一定的java基础

变量与方法

  • 变量声明及赋值

    var 变量名: 变量类型

    val 变量名: 变量类型

    这里,var表示可以改变的变量,val则是不可改变的变量(第一个赋值之后,之后都无法改变此变量的数值)

    PS:在kotlin中,类型首字母都是要大写的,还有,冒号之后有空格

  • 变量声明及赋值

    var name =""

    var age= 1

    val name= ""

    ...

赋值的话,直接赋值就好,系统会自动的给变量定义类型

  • 变量声明特殊例子

    name: String?

    声明一个String类型的变量name,name可以为null,这里是空指针防护,在后面会讲到

  • 方法声明格式

    fun 方法名(){

    }

PS:默认为public,返回值为空

fun helloworld() {
print("hello world")
}

无需使用分号,print省略了Java中的System.Out

和java一样,println换行,print不换行

fun helloworld(): String{
print("hello world")
}

返回一个String

protected fun helloworld(): String{
print("hello")
}

声明方法为protected,除此之外,还有private,internal

  • 类的声明

    class Student{

    var name = ""

    var age = 0

    }

这里是写了一个Student类,我们上面虽然只有两行代码,但实际上将其转为java代码时,其实是包含了set和get方法

class Student{
var name = ""
set(value){
field = ...//复写set方法
}
get(value){
...
}
var age= 0
}
  • companion 伴生方法 相当于java中的静态方法,得在

  • init 主构造方法

  • 实现接口与继承

  • 直接构造方法

    class Student(var name: String,var age: Int){

    }

可以直接通过参数创建一个Student对象

  • 创建对象

    `var s = Student("Zhangsan",15)

继承父类及实现接口

class Student: school,Person(){
...
}

循环

for(i in 0..100) 0到100 都取值

for(i in 0 until 100)

for(i in list)

遍历list

swich分支

val result = ""
when(result){
"OK","SUCCESS" -> print("成功")
"Falied" -> {
一系列操作...
}
else ->{
一系列操作...
}
}

result如果是OK或者是SUCCESS,执行输出成功,如果是Falied,执行后面的操作,都不符合,则执行else后面定义的操作

如果判断是否是某个类的实例,使用is关键字

val student = Student("Zhangsan",15)
when(result){
is Student -> print("")
else ->{
一系列操作...
}
}

空指针防护

  • ?. ?

    fun get(name: String?): Int{

    return name?.length ?: 0 //如果name为null,则返回0,

    }

  • ?. 表示前面的变量可能为null

      fun toUpperCase(content: String?){
    println(content?.toUpperCase) //如果content为null,则不执行
    }

视频下载地址:

郭霖—快速上手kotlin链接:https://pan.baidu.com/s/1eo6B8EFdjWpwc-j8yI9iFw

提取码:fvmq

菜鸟kotlin教程

本篇其实也是笔记,可能有不准确的地方,多多包涵

Kotlin入门学习笔记的更多相关文章

  1. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  2. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  3. PyQt4入门学习笔记(三)

    # PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...

  4. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  5. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

  6. Hadoop入门学习笔记---part1

    随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...

  7. Scala入门学习笔记三--数组使用

    前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...

  8. OpenCV入门学习笔记

    OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...

  9. stylus入门学习笔记

    title: stylus入门学习笔记 date: 2018-09-06 17:35:28 tags: [stylus] description: 学习到 vue, 有人推荐使用 stylus 这个 ...

随机推荐

  1. 记录 制作校园网登陆脚本 python编写 附源码

    ‘’‘ 首先我们分析一下 1.需要本机的IP 使用 socket 获取 2.需要向服务器提交的数据 构造请求数据 并分析数据可替换 3.检测登陆成功 检测登陆是否成功 ’‘’ 获取IP 这样会返回 本 ...

  2. CentOS7设置SVN自启动,提交报错,无权限.手动kill掉后重启,成功.

    参考文档:http://tieba.baidu.com/p/5174054662 最近想尝试在CentOS7上搭建SVN服务.遇到的问题大致如题,我这边再详细描述一下. 虚拟机:VMware® Wor ...

  3. [python] bluepy 一款python封装的BLE利器

    1.bluepy 简介 bluepy 是github上一个很好的蓝牙开源项目,其地址在 LINK-1, 其主要功能是用python实现linux上BLE的接口. This is a project t ...

  4. html5 postMessage 实现类似 sendMessage 的同步效果,支持跨域

    实现一个客户端发送 “save 一个答案,在获取答案, 跨域的另一个页面中,回调返回”3“的场景. 客户端:请在 http://127.0.0.1/pk/index.html 打开 <html& ...

  5. React Native 断点调试 跨域资源加载出错问题的原因分析

    写在前面 ————如果从头开始看还没解决,试试文章最后的绝招 闲来无事,折腾了一下React Native,相比之前,开发体验好了不少.但在真机断点调试那里遇到了跨域资源加载出错的问题,一番探索总算解 ...

  6. 【安富莱专题教程第3期】开发板搭建Web服务器,利用花生壳让电脑和手机可以外网远程监控

    说明:1.  开发板Web服务器的设计可以看我们之前发布的史诗级网络教程:链接.2.  需要复杂些的Web设计模板,可以使用我们V6开发板发布的综合Demo:链接.3.  教程中使用的是花生壳免费版, ...

  7. 使用BurpSuite进行双文件上传拿Webshell

    首先进入网站后台:(后台界面应该是良精CMS) <ignore_js_op> 在 添加产品 这一栏有个上传文件: <ignore_js_op> 选择一个*.jpg格式的图片进行 ...

  8. [Swift]LeetCode271. 加码解码字符串 $ Encode and Decode Strings

    Design an algorithm to encode a list of strings to a string. The encoded string is then sent over th ...

  9. 【译】编写支持SSR的通用组件指南

    原文来自:https://blog.lichter.io/posts/the-guide-to-write-universal-ssr-ready-vue-compon?utm_campaign=Vu ...

  10. Go语言的一些使用心得

    序 起初一直使用的Python,到了18年下半年由于业务需求而接触了Golang,从开始学习到现在的快半年里,也用Golang写了些代码,公司产品和业余写的都有,今天就写点Golang相关的总结或者感 ...