当前位置:网站首页>Kotlin basics 1
Kotlin basics 1
2022-07-06 01:09:00 【hzulwy】
var & val & Type derivation
val a = "Brett";
a = "Jett"// This is not allowed , The compiler will report an error
When using val When variables are declared , Variables cannot be changed after being assigned initial values ,val Declared variable is read-only . If you want to change the value of a variable, you can set val Change it to var. Put the above code to val Change it to var Then the compiler will not report an error .
As you can see from the above code ,kotlin Variables of can not declare types , because kotlin There is a type derivation mechanism . The compiler in the above code can automatically deduce a yes String type . Not only can variables not declare types , Functions can also not declare types , for example :
fun a(a:Int){
return 10;// The function can automatically deduce the type of the function as Int
}
kotlin And java There is another difference in the method of :java Methods of must be declared in the class , however kotlin Functions of can be declared inside and outside the class .
Here comes a question of thinking :kotlin Is it a static language or a dynamic language ? The answer is static language . because kotlin The type of is determined by the compiler , All languages that determine the type in the compiler are static languages . If you don't believe me, you can try , Put the above code to a=10, At this time, the compiler will report an error , because a The initial value is String type .
const val
Compilation is constant , Only applicable to kotlin Common basic data types :(String、Double、Int、Float、Long、Short、Byte、Char、Boolean)
Compile time constants can only be defined outside functions : Because if it is defined in a function , You must assign values at runtime , Why compile time constants .
const val PI= 3.14
fun main(){
const val a = 12// This is a mistake
}
Here comes a question :(Byte、Char、Boolean、Short、Long、Float、Int、Double) yes kotlin Class , It belongs to the reference data type , Will it affect performance ? The answer is no , because kotlin The code will eventually turn into java Basic type
Null pointer check
Compare with java Null pointer check for ,kotlin Two ways are added .
val a = "Brett";
a?.length//a by null, Don't execute length Method
a!!.length// No matter what a Is it null, It will be carried out length Method , And java Agreement
if(a != null){
// This kind of java The same as
a.lenth
}
Built in data types
String | character string |
Char | A single character |
Int | integer |
Float/Double | floating-point |
List | aggregate |
Set | No duplicate element set |
Map | Set of key value pairs |
when expression
//when amount to java in switch, however when Is an expression , You can have a return value
//info The type of Any, amount to java Of Object.Unit amount to java Of void, however void Is a keyword and Unit Is a class
val info= when(x){
1,2 -> "xxxx"
3 -> "aaaa"
else{
println("xxxx")
}
}
if expression
kotlin Of if It's an expression, not a statement , You can have a return value , The return value is the last sentence .
fun main(){
val isLogin = false;
println("${
if (isLogin) congratulations ,else No, congratulations } ")
}
function
The significance of the existence of named functions lies in , When passing parameters , It is not necessary to pass in the order of parameters .
fun main(){
show(-90)
}
private fun show(number:Int){
when(number){
in 0..59 -> println(" Failing grades ")
in 60..100 -> println(" Pass the grade ")
else -> TODO(" There is no such score ")//Nothing type , Will terminate the program and throw an exception .
}
}
// Backquote function
public class test{
public static void is (){
System.out.println("is")
}
}
fun main(){
// First usage
` Test the backquote function `()
// Second usage
test.`is`()
}
private fun ` Test the backquote function `(){
println("test")
}
边栏推荐
- 有谁知道 达梦数据库表的列的数据类型 精度怎么修改呀
- Dynamic programming -- linear DP
- What is the most suitable book for programmers to engage in open source?
- devkit入门
- MYSQL GROUP_ The concat function realizes the content merging of the same ID
- DD's command
- 朝招金安全吗 会不会亏损本金
- Dede collection plug-in free collection release push plug-in
- KDD 2022 | EEG AI helps diagnose epilepsy
- [groovy] JSON serialization (jsonbuilder builder | generates JSON string with root node name | generates JSON string without root node name)
猜你喜欢
图解网络:TCP三次握手背后的原理,为啥两次握手不可以?
ubantu 查看cudnn和cuda的版本
程序员搞开源,读什么书最合适?
95后CV工程师晒出工资单,狠补了这个,真香...
Cf:c. the third problem
Vulhub vulnerability recurrence 74_ Wordpress
IP storage and query in MySQL
VMware Tools安装报错:无法自动安装VSock驱动程序
WordPress collection plug-in automatically collects fake original free plug-ins
I'm interested in watching Tiktok live beyond concert
随机推荐
Mysql--- query the top 5 students
Installation and use of esxi
Redis' cache penetration, cache breakdown, cache avalanche
Four commonly used techniques for anti aliasing
直播系统代码,自定义软键盘样式:字母、数字、标点三种切换
Why can't mathematics give machine consciousness
Live video source code, realize local storage of search history
程序员搞开源,读什么书最合适?
Cloud guide DNS, knowledge popularization and classroom notes
What is the most suitable book for programmers to engage in open source?
Development trend of Ali Taobao fine sorting model
golang mqtt/stomp/nats/amqp
How to extract MP3 audio from MP4 video files?
Keepalive component cache does not take effect
Finding the nearest common ancestor of binary search tree by recursion
Cf:d. insert a progression [about the insert in the array + the nature of absolute value + greedy top-down]
China Taiwan strategy - Chapter 8: digital marketing assisted by China Taiwan
Four dimensional matrix, flip (including mirror image), rotation, world coordinates and local coordinates
Novice entry depth learning | 3-6: optimizer optimizers
毕设-基于SSM高校学生社团管理系统