详解 Kotlin Reference Basic Types, String, Array and Imports

详解 Kotlin Reference  Basic Types, String, Array and Imports

基本数据类型

Kotlin中支持的基本数据类型及它所占Bit宽度:

Type Bit width Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8

Char 在kotlin中 并不是一个数值类型

kotlin不支持8进制, 支持 2、10、16进制

下面的代码,示例了:

关于2、10、16进制;

使用下划线在数值常量赋值数据中;

使用==和===进行比较;

基本数据类型间的类型转换方法toXxx;

位移操作;

字符,转义符

package com.stone.basic.types /** * desc : 基本数据类型 按位操作符 * author: stone * email : aa86799@163.com * time : 30/05/2017 19 14 */ fun basic() { var intValue = 7777 var floatValue1 = 8.3f var floatValue2 = 10.45F var doubleValue = 9.99 var longValue = 1L // var longValue = 1l //不能用 小写l后缀 var hexValue = 0XA8a8a8a8a8a8a8a //Hexadecimals 0x或0X开头 println("hexValue: ${hexValue > Int.MAX_VALUE}") var doubleValue2 = 1.3e24 //科学记数法 1.3*10^24 println("1e24 / (10^20) : ${doubleValue2 / Math.pow(10.0, 20.0)}") val binaryValue = 0B00001011 //以 0B或0b 开头 println("binaryValue : $binaryValue") /* 不像java中 有一个基本类型 float 对应一个 装箱类型 Float kotlin中只有 后者 kotlin中 都能 对应一个 空检查的 装箱类型,即后面加问号: T? */ } //使用下划线在数值常量赋值数据中,增加可读性 val oneMillion = 1_000_000 val creditCardNumber = 1234_5678_9012_3456L val socialSecurityNumber = 999_99_9999L val hexBytes = 0xFF_EC_DE_5E val bytes = 0b11010010_01101001_10010100_10010010 fun equal() { val a: Int = 10000 val b: Int = 10000 println("1 : ${a === b}") // Prints 'true' val boxedA: Int? = a val anotherBoxedA: Int? = a println("2 : ${boxedA === anotherBoxedA}") // !!!Prints 'false'!!! println("3 : ${boxedA == anotherBoxedA}") // Prints 'true' // val c: Int? = 1 // val d: Long? = c // c 不能赋值给 d // println("4 : ${c == d}") // Int 和 Long不能 相比 //像 上面这样的 隐式转换 都行不通的, 只能使用如下明确转换方式: to方法 val e: Int = 1 val f: Long = e.toLong() /* - toByte(): Byte — toShort(): Short — toInt(): Int — toLong(): Long — toFloat(): Float — toDouble(): Double — toChar(): Char */ //类型推断 val l = 1L + 3 // Long + Int => Long } fun bitwise() { val r = 1 shl 2 and 0x000FF000 /* bitwise operations 按位操作符: — shl(bits) – signed shift left (Java's << ) — shr(bits) – signed shift right (Java's >> ) — ushr(bits) – unsigned shift right (Java's >>> ) — and(bits) – bitwise and (&) — or(bits) – bitwise or (|) — xor(bits) – bitwise xor (^) — inv() – bitwise inversion (!) */ } fun charOperation() { val str = "stone" for (c in str) { println("char in str : $c") val r = c + 3 // if (r == 118) {//不能如此操作:Char 在kotlin中 并不是一个数值类型 // println(r) // } if (r.toInt() == 118) {//可以用toInt() 来进行比较 println("符合条件的字符$r, 原始字符串的字符是${r - 3}") } fun decimalDigitValue(c: Char): Int { if (c !in '0'..'9') throw IllegalArgumentException("Out of range") return c.toInt() - '0'.toInt() // Explicit conversions to numbers } // decimalDigitValue('x') decimalDigitValue('6') } /* 类似'1'这样单引号中一个字符的定义就是一个 Char 支持使用\转义: \t , \b , \n , \r , \' , \" , \\ and \$ Unicode字符: '\uFF00' */ } fun booleanOperation() { val b: Boolean = !true /* 支持的操作符: || 、 && 、 ! */ } fun main(args: Array<String>) { basic() equal() charOperation() }

String Type

package com.stone.basic.types /** * desc : * author: stone * email : aa86799@163.com * time : 30/05/2017 20 48 */ fun main(args: Array<String>) { /* 使用三个双引号开头与结尾, 中间可以包含 任何 非转义字符 */ val text = """ |Tell me and I forget. |Teach me and I remember. |Involve me and I learn. |(Benjamin Franklin) >admin""".trim().trimMargin().trimMargin(">") //trimMargin 去掉前缀,默认以|作margin前缀,也可以指定前缀 println(text) var s = "abc" var str = "$s.length is ${s.length}" val price = """${'$'}9.99${"\t"}一杯果汁""" println(price) }

Array Type

package com.stone.basic.types import java.util.* /** * desc : * author: stone * email : aa86799@163.com * time : 30/05/2017 20 48 */ fun main(args: Array<String>) { val ary = arrayOf(1, 3, 2) //使用arrayOf 创建数组 // val asc = Array(5, { i -> (i * i).toString() }) val asc = Array(5, { i -> Math.random() }) //使用构造函数创建数组:后面的lambda参数,表示设置每个index上的元素 for (it in asc) { // println(it == "1") println(it) } val ary2 = arrayOfNulls<Long>(2) //每个数组元素中 填充一个null值 for (i in ary2.indices) {//indices 返回一个 索引范围 : IntRange ary2[i] = 3L + Random().nextInt(10) println("ary2[$i] : ${ary2[i]}") //[] 可以用于 get 和 set 操作 } val ary3 = doubleArrayOf(1.0, 2.2, 3.3) //基本数据类型都对应有一个 xxArrayOf函数 }

Import

package com.stone.basic.imports import kotlin.* //import static java.lang.Math //Kotlin 不支持 /* 默认import Kotlin file : — kotlin.* — kotlin.annotation.* — kotlin.collections.* — kotlin.comparisons.* (since 1.1) — kotlin.io.* — kotlin.ranges.* — kotlin.sequences.* — kotlin.text.* 还有 Kotlin— JVM: — java.lang.* — kotlin.jvm.* //Kotlin 不支持 静态方法导入 */

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2024-08-03 15:20:10

详解 Kotlin Reference Basic Types, String, Array and Imports的相关文章

详解C++中实现继承string类的MyString类的步骤_C 语言

昨天师兄又出了道测试题,让我们实现类似于string类的没有MyString类,刚开始很头疼,可是真正在自己写代码的时候又很兴奋的发现,这个过程真的是个很宝贵的机会,让我又有机会可以很好的熟悉回顾C++的很多知识-类设计,构造析构函数,成员函数,友元函数,引用,重载,字符串操作,动态内存分布.....于是昨天花了半天时间写了300多行代码,并认真的进行了相关测试.修改和总结.因为内容有点丰富,所以想分几次写出来,条理也清楚些. 类的空间分配:类给它的每个对象都分配了独立的空间去存储它的数据成员,

详解Ruby语言中的String

Ruby语言中的String是mutable的,不像java.C#中的String是immutable的.比如 str1="abc" str2="abc" 在java中,对于字面量的字符串,jvm内部维持一张表,因此如果在java中,str1和str2是同一个 String对象.而在Ruby中, str1和str2是完全不同的对象.同样,在java中对于String对象的操作都将 产生一个新的对象,而Ruby则是操纵同一个对象,比如: str="abc&q

详解Kotlin 中使用和配置 Dagger2

前言 陆陆续续几篇文章已经讲解了项目中 Kotlin 如何配置.简单语法.DataBinding 配置,接下来就要说到 Kotlin 中的 Dagger2 了. 配置 Dagger2 项目中使用 Dagger2 ,首先还是添加依赖.同样的,因为要使用到注解处理,所以和 DataBinding 一样要添加 kapt 插件: apply plugin: 'com.android.application' ... apply plugin: 'kotlin-kapt' // kapt 插件 ... k

Android AndroidStudio 详解Kotlin的安装和使用(附下载demo)

转载请标明出处: http://blog.csdn.net/DJY1992/article/details/72485381 本文出自:[奥特曼超人的博客] Kotlin是什么?如何安装Kotlin?Java如何转换成Kotlin?Kotlin的demo? Kotlin Demo 下载: <KotlinDemo> Kotlin是一种在 Java虚拟机上执行的静态型别编程语言,是由俄罗斯圣彼得堡的 JetBrains 开发团队所发展出来的编程语言. 该语言有几个优势 : 简洁 它大大减少你需要写

详解 PHP加密解密字符串函数附源码下载_php实例

项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 下面先给大家展示下效果图,感兴趣的朋友继续阅读全文. 效果演示     源码下载 笔者收录了一些比较经典的PHP加密解密函数代码,分享给大家.加密解密原理一般都是通过一定的加密解密算法,将密钥加入到算法中,最终得到加密解密结果. 1.非常给力的authcode加密函数,Discuz!经典代码(带详解): function authc

php array_values 返回数组的所有值详解及实例_php实例

php array_values php array_values 函数用于返回数组中所有的值,注意该函数将为新数组建立数组索引,原来的文字索引将不存在.本文章向大家讲解array_values函数的基本语法及使用实例. array_values 返回数组中所有的值 基本语法: array array_values ( array $input ) array_values() 返回 input 数组中所有的值并给其建立数字索引. 参数介绍: 参数 描述 input 必需.规定数组. 返回值:

Android TextView使用SpannableString设置复合文本的方法详解_Android

本文实例讲述了Android TextView使用SpannableString设置复合文本的方法.分享给大家供大家参考,具体如下: TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式.事件方面的设置.Android系统通过SpannableString类来对指定文本进行相关处理,具体有以下功能: 1.BackgroundColorSpan 背景色 2.ClickableSpan 文本可点击,有点击事件 3.ForegroundColorSpan 文本颜色(前景色) 4.

Android Kotlin开发实例(Hello World!)及语法详解

Android Kotlin开发实例及语法详解 前言 Kotlin是一种在 Java虚拟机上执行的静态型别编程语言,它主要是由俄罗斯圣彼得堡的JetBrains开发团队所发展出来的编程语言.该语言有几个优势 1. 简洁 它大大减少你需要写的样板代码的数量. 2. 安全 避免空指针异常等整个类的错误. 3. 通用 构建服务器端程序.Android 应用程序或者在浏览器中运行的前端程序. 4. 互操作性 通过 100% Java 互操作性,利用 JVM 既有框架和库. 配置 在我们的AndroidS

kotlin 官方学习教程之基础语法详解

kotlin 官方学习教程之基础语法详解 Google 在今天的举行了 I/O 大会,大会主要主要展示内有容 Android O(Android 8.0)系统.Google Assistant 语音助手.Google 智能音箱.人工智能.机器学习.虚拟现实等.作为一个 Android 开发者,我关心的当然是 Android O(Android 8.0)系统了,那么关于 Android O 系统的一个重要消息是全面支持 Kotlin 编程语言,使得 Kotlin 成为了 Android 开发的官方