当前位置:网站首页>【kotlin】第一天
【kotlin】第一天
2022-06-21 07:53:00 【亚太地区百大最帅面孔第101名】
️ Author: 老九
️ 个人博客:老九的CSDN博客
个人名言:不可控之事 乐观面对
系列专栏:kotlin急速通关
文章目录
kotlin的空检测机制
- 需要加上问号
class NullStudy{
var info:String=""
}
fun main(args: Array<String>){
var name:String ? = null
//todo:第一种补助措施
name?.length
println(name)
//todo:无论是不是null都执行
name!!.length
//todo:if条件
if(name != null){
name.length
}
}
val,var类型
- val是可读不可改的类型
- var是可读可改
- 尽量使用val,如果此变量后续需要更改,使用var
fun main(args: Array<String>) {
val name:String = "Derry"
// name="Derry2"
println("name:$name")
var sex:Char="c"
sex='A'
println("sex:$sex")
}
类型推断
- kotlin是静态语言(编译期就确定了类型)
fun main(args: Array<String>) {
// val name:String="Derry"
// val info:String ="woshizhu"
val name="Derry"
val info="woshizhu"
val sex = 'c'
val age = 35
}
kotlin函数(函数)

- kotlin中函数可以写在类里面,也可以写在类外面
fun main() {
method01(99,"lisi")
}
//函数默认public
//其实kotlin的函数,更规范,先有输入,再有输出
private fun method01(age: Int,name:String):Unit{
println("你的姓名是:${
name},你的年龄是:${
age}")
}
//Unit类型 == java中的void类型
fun add(number1:Int,number2:Int):Int{
return number1+number2;
}
//返回值类型推断
//如果不知道结果是什么类型,可以直接写=
fun add2(number1:Int,number2:Int)=number1+number2
fun add3(number1:Int,number2:Int)=number1+number2.toDouble()
kotlin第一个程序
fun main() {
println("helloworld")
//TODO 声明变量
var name : String = "lmp"
name = "Lance"
println(name)
}
数据类型
String 字符串
Char 字符
Boolean true/false
Int 整型
Double 小数
List 集合
Set 无重复的元素集合
Map 键值对的集合
编译时常量
- 只能写在方法外面,如果定义在函数之内,就必须在运行时才能调用函数赋值,何来编译时常量一说
//定义编译时常量
const val PI= 3.14
fun main() {
// const var PI = 45
}
range表达式(in)
fun main() {
val number = 148
//左闭右闭
// range 范围从哪里 到哪里
if(number in 10..59){
println("不及格")
}else if(number in 0..9){
println("不及格并且分数很差")
}else if(number in 60..100){
println("及格")
}else if(number !in 0..100){
println("分数不在0到100范围内")
}
}
when表达式
fun main() {
val week = 6
//Any == Object
val info = when (week){
1->"今天是星期一,非常忙碌的一天开会"
2->"今天是星期二,非常忙碌的一天开会"
3->"今天是星期三,非常忙碌的一天开会"
4->"今天是星期四,非常忙碌的一天开会"
5->"今天是星期五,非常忙碌的一天开会"
6->"今天是星期六,非常忙碌的一天开会"
7->"今天是星期七,非常忙碌的一天开会"
else -> {
println("养猪去了")
}
}
println(info)
}
String 模板
fun main() {
val garden = "黄石公园"
val time = 6;
println("今天天气很晴朗,去${
garden}玩,玩了${
time}小时")
//KT的if是表达式,所以可以更灵活,java的if是语句
val isLogin = true
println("server response result:${
if(isLogin)"恭喜你,登陆成功√" else "不恭喜你,登录失败"}")
}
函数参数的默认参数
fun main() {
action01("list",89)
action02("lsit")
action03()
}
private fun action01(name:String,age:Int)
{
println("$name,$age")
}
private fun action02(name:String,age:Int = 77)
{
println("$name,$age")
}
private fun action03(name:String="王五",age:Int = 77)
{
println("$name,$age")
}
具名函数参数
fun main() {
loginAction(age= 99,userpwd="1233",username = "de",phonenumber = "1123456")
}
private fun loginAction(username:String,userpwd:String,phonenumber:String,age:Int){
println("${
username},${
userpwd},${
phonenumber},${
age}")
}
Nothing类型特点
fun main() {
show(-1)
}
private fun show(number:Int){
when(number){
//TODO()这个就像抛出异常一样
-1 -> TODO("没有这种分数")
in 0..59 -> println("分数不及格")
in 60..70 -> println("分数及格")
in 71..100 -> println("分数优秀")
}
}
interface A {
fun show()
}
class AImpl : A{
override fun show() {
//下面这句话不是中止提示,会终止程序
TODO("Not yet implemented")
}
}
————————————————————————
码字不易,大家的支持就是我坚持下去的动力
版权声明:本文为CSDN博主「亚太地区百大最帅面孔第101名」的原创文章
边栏推荐
- Flutter returns to the black screen of the previous page
- mysql的安装路径如何查看
- mysql存储过程中的循环语句怎么写
- Rdkit | molecular similarity based on molecular fingerprint
- [untitled]
- Actual battle of wechat applet project -- music applet developed based on wyy music real interface
- MATLAB 三维图(非常规)
- mysql数据库拉链表是什么
- 华三IPsec
- China uncoated intermittent catheter market trend report, technical innovation and market forecast
猜你喜欢

数字孪生实际应用案例-煤矿篇

Traversal of binary tree

如何让mysql不区分大小写

升级Jenkins步骤和遇到的问题

Upgrade Jenkins steps and problems encountered

A table to easily understand the prefix and suffix of increment and decrement operators

2022年的WordPress网站安全问题

古风排版 (20 分)(测试点4)

Mongodb installation (Graphic tutorial)

How MySQL closes a transaction
随机推荐
18 statistics and its sampling distribution chi square distribution-t distribution-f distribution
One year experience interview byte Tiktok e-commerce, share the following experience!
[Redis]-[Redis底层数据结构]-SDS
(对于换行符)gets和fgets的区别,puts和fputs的区别
2021-07-28 STM32F103 I2C Hardware Transfer Include previous IO Clock EXIT USB use firmware library
Bean实例化的三种方法
1005 Spell It Right (20 分)(测试点3)
Send using queue mailbox
2021-06-16 STM32F103 EXTI 中断识别 使用固件库
JVM内存模型概念
Why is there no error in the code, but the data in the database cannot be displayed
What is a multi domain SSL certificate?
20 statistics and their sampling distribution -- Sampling Distribution of sample proportion
為什呢代碼沒報錯但是數據庫裏邊的數據顯示不出來
Definition and declaration problems in stm32
2021-06-17 STM32F103 USART serial port code using firmware library
Research Report on inorganic copper fungicide industry - market status analysis and development prospect forecast
Talk about MySQL's locking rule "hard hitting MySQL series 15"
How to make MySQL case insensitive
17 statistics and their sampling distribution statistics and distribution