kotlin从入门到看开 ₁


layout: post
title: "kotlin-基础知识1"
subtitle: "青春就是这样 好得像是无论怎样度过都会被浪费 那么 不如浪费在你身上"


Kotlin作为JetBrains开发的一门新语言,所以我们还是从语言上来学习它,用的IDE是JetBrains开发的IDEA.

数据类型

在kotlin中不再区分基本数据类型和装箱数据类型,在需要的时候编译器会自动帮我们选择

  • Boolean
  • Number
    • 整形
      • Short
      • Int
      • Long
    • 浮点型
      • Float
      • Double
    • 字节
      • Byte
  • Char
  • String

Boolean

val b1 : Boolean = true
val b2 : Boolean = false

Number

Number主要包括整形和浮点型

整型

  • Short 16位宽
  • Int 32位宽
  • Long 64位宽

浮点型

  • Double 64位宽
  • Float 32位宽

字节

  • Byte 8位宽
val anInt: Int = 8
val anotherInt: Int = 0xFF
val moreInt: Int = 0b00000011
//MAX_VALUE MIN_VALUE均是数字的属性可直接取到
//MAX_VALUE = 2的31次方减一(因为有一位是符号位)
val maxInt: Int = Int.MAX_VALUE = Math.pow(2.0,31.0)-1
val minInt: Int = Int.MIN_VALUE = -Math.pow(2.0,31.0)-1

val aLong: Long = 12368172397127391
val another: Long = 123
val maxLong: Long = Long.MAX_VALUE
val minLong: Long = Long.MIN_VALUE

//2.0默认是Double类型 若想将2.0赋值给一个Float需要在其后面加F
val aFloat: Float = 2.0F
val anotherFloat: Float = 1E3f//1*10^3
val maxFloat: Float = Float.MAX_VALUE
val minFloat: Float = -Float.MAX_VALUE

val aDouble: Double = 3.0
val anotherDouble: Double = 3.1415926
val maxDouble: Double= Double.MAX_VALUE
val minDouble: Double= -Double.MAX_VALUE

val aShort: Short = 127
val maxShort: Short = Short.MAX_VALUE
val minShort: Short = Short.MIN_VALUE

val maxByte: Byte = Byte.MAX_VALUE
val minByte: Byte = Byte.MIN_VALUE

fun main(args: Array<String>) {
    println("16进制:"+anotherInt)
    println("2进制:"+moreInt)

    println("Int最大值:"+maxInt)
    //Int最大值取值范围
    println(Math.pow(2.0, 31.0) - 1)
    println("Int最小值:"+minInt)
    //Int最小值取值范围
    println( - Math.pow(2.0, 31.0))
    println()

    println("Long最大值:"+maxLong)
    println(Math.pow(2.0, 63.0) - 1)
    println("Long最小值:"+minLong)
    println(- Math.pow(2.0, 63.0))
    println()

    println("Float:"+aFloat)
    println("1*10^3:"+anotherFloat)
    println("Float最大值:"+maxFloat)
    println("Float最小值:"+minFloat)
    println()

    println("Double最大值:"+maxDouble)
    println("Double最小值:"+minDouble)
    println()

    println("Short最大值:"+maxShort)
    println("Short最大值:"+minShort)
    println()

    println("Byte最大值:"+maxByte)
    println("Byte最大值:"+minByte)
}

打印结果

16进制:255
2进制:3
Int最大值:2147483647
2.147483647E9
Int最小值:-2147483648
-2.147483648E9

Long最大值:9223372036854775807
9.223372036854776E18
Long最小值:-9223372036854775808
-9.223372036854776E18

Float:2.0
1*10^3:1000.0
Float最大值:3.4028235E38
Float最小值:-3.4028235E38

Double最大值:1.7976931348623157E308
Double最小值:-1.7976931348623157E308

Short最大值:32767
Short最大值:-32768

Byte最大值:127
Byte最大值:-128

Char

字符

  • Char 16位宽
  • Char占两个字节 16位宽
  • Char用单引号'' 引起来,例如:'a','0','\n'
val aChar: Char = '0'
val bChar: Char = '中'
val cChar: Char = '\u000f'

fun main(args: Array<String>) {
    println(aChar)
    println(bChar)
    println(cChar)
}

打印结果

0
中
  //这里是一个换行符

补充转义字符

 \t  制表符
 \b  光标后退一个字符
 \n  回车
 \r  光标回到行首
 \'  单引号
 \"  双引号
 \\  反斜杠
 \$  美元符号,kotlin支持美元 符号开头的字符串模板

String

字符串的比较

  • a == b 表示比较内容,类似java的equals
  • a === b 表示比较对象是否相同

字符串模板

  • $
val string: String = "HelloWorld"
val fromChars: String = String(charArrayOf('H', 'e','l','l','o','W','o','r','l','d'))
//charArrayOf :Char数组构建
fun main(args: Array<String>) {
    println(string == fromChars)
    println(string === fromChars)
    println("输出:" + string)

    val arg1: Int = 0
    val arg2: Int = 1
    println("" + arg1 + " + " + arg2 + " = " + (arg1 + arg2))
    //字符串模板
    println("$arg1 + $arg2 = ${arg1 + arg2}")

    //Hello "Trump"
    val sayHello : String = "Hello \"Trump\""
    println(sayHello)

    val salary: Int = 1000
    //$salary:是取到salary的值
    println("$salary")
    //原始字符串 原样输出字符串 转义字符也没有用(但是$还是可以用的)
    val rawString: String = """
/*****************************/
        嘴不点而含丹
        眉不画而横翠
        \t
        \n
        \$salary
/*****************************/
    """
    println(rawString)
    println(rawString.length)
}

打印结果

true
false
输出:HelloWorld
0 + 1 = 1
0 + 1 = 1
Hello "Trump"
1000

/*****************************/
        嘴不点而含丹
        眉不画而横翠
        \t
        \n
        \1000
/*****************************/
    
135

基本数据类型转换

在kotlin中基本数据类型不可隐士转换

val anint : Int = 5
val along : Long = anint.toLong()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容