我爱编程

二、kotlin 数据类型、数据结构以及语法

2018-07-25  本文已影响50人  菜鸟七日游

1,基本数据类型

Kotlin 的数据类型有 Byte、Short、Int、Long、Float、Double 、String不是数值类型, 是一个独立的数据类型。
学过java的应该都知道它的取值范围 kotlin你们数据类型全是大写字母开头。

Byte的取值范围-128~127
Short的取值范围为-32768~32767
Int的取值范围为-2147483648~2147483647
Long的取值范围为-9223372036854774808~9223372036854774807
Float的取值范围为3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)
Double的取值范围为1.797693e+308~ 4.9000000e-324
String 是字符串类型

每个数值类型都支持下面的转换:
toByte(): Byte
toShort(): Short
toInt(): Int
toLong(): Long
toFloat(): Float
toDouble(): Double
toChar(): Char

/*
 kotlin 注释和 java  JavaScript 的注释一样
 //单行注释
 /**/ 代码块注释
 */

//声明全局常量
val number = 10
//申明全局变量
var number1 = 11

fun main(args: Array<String>) {
    //变量申明
    //计算机给我一块内存,名字叫i里面存储的数据为18
    var i = 16
    //当前变量无法存储999999999999  当i = 16的时候 已经默认数据类型为 Int  此处会报错
    i = 999999999999
    
    //s 就是一个字符串类型
    var s = "haha"
    
    //我们也可以申明类型
    var j:Int = 10
    var a:String = "sssssssssssss"
    //kotlin 是智能数据类型推算 如果不指定类型 也不指定值 就会报错
    var b
    
    
    //常量申明
    
    //val 声明常量
    val name = "eclipse"
    //申明的常量不能更改值否则会报错  此处会报错
    name = "kotlin"
    
}

2,Boolean 和其他的数据类型在使用上没什么区别 它的值有 true false


fun main(args: Array<String>) {
    printStr();
}


fun printStr(){
    var num1 = Math.sqrt(7.0)
    var num2 = Math.sqrt(6.0)
    println("7开平方的值 大于 6开平方的值-->>" + (num1 > num2))
    
    println("7开平方的值 小于 6开平方的值-->>" + (num1 < num2))
}

控制台输出
7开平方的值 大于 6开平方的值-->>true
7开平方的值 小于 6开平方的值-->>false

3,数据结构

Array在 Kotlin 中由 Array 类表示,有 get 和 set 方法(通过运算符重载可以由[]调用),以及 size 方法,以及一些常用的函数:

class Array<T> private () {
    fun size(): Int
    fun get(index: Int): T
    fun set(Index: Int, value: T): Unit
    fun iterator(): Iterator<T>
    //...
}

和Java不一样,Kotlin 的数组是容器类, 提供了 ByteArray, CharArray, ShortArray, IntArray, LongArray, BooleanArray, FloatArray, and DoubleArray。
通过arrayof() 创建数组 ,通过 ***ArrayOf 创建指定类型的数组

4,List

List是容器,kotlin可也通过 listof()创建List

//声明list不指定类型数组  自动匹配类型
var list = listOf("aa","bb","Ccc")
//声明list指定类型数组  list:List<T> 可以是任何对象
var list1:List<Int> = listOf(1,2)

5,Map

map是<key,value>的方式储存数据 和java 是一样的 kotlin通过mapOf创建 map

    var map = mapOf("1" to "ys","2" to "ll")
    var map1 =  hashMapOf("1" to "ys","2" to "ll")
    var map2 =  linkedMapOf("1" to "ys","2" to "ll")
    var map3 =  mutableMapOf("1" to "ys","2" to "ll")
    var map4 =  sortedMapOf("1" to "ys","2" to "ll")
    var value = map4.get("1")
    println(value)
    var maps = TreeMap<String,String>()
    maps["1"] = "aaa"
    maps["2"] = "bbb"
    maps["3"] = "ccc"
    
  //等等 。。。

6,Set

Set是没有重复项的容器, Kotlin提供setOf创建Set

var intSet: Set<Int> = setOf(1, 2, 3, 4, 5, 6, 7) 
var hashset:HashSet<Student> = hashSetOf(
        Student("ys", "25", 2014, "978-15185554445"),
        Student("ll", "24", 2014, "978-15168454887"))
var  treeset:TreeSet<Int> = sortedSetOf(11, 0, 9, 11, 9, 8)

有一些相关的包需要导入

import java.util.TreeMap
import java.util.SortedMap
import java.util.TreeSet
import java.util.HashSet

上一篇 下一篇

猜你喜欢

热点阅读