详解 Kotlin Reference Basic Types, String, Array and Imports
发布时间 - 2026-01-11 01:36:24 点击率:次详解 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 不支持 静态方法导入 */
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Kotlin
# Reference
# Basic
# Types
# String
# Array
# and
# Imports
# kotlin 官方学习教程之基础语法详解
# Android Kotlin的使用及简单实例
# 使用Kotlin开发Android应用的初体验
# Kotlin开发Android应用实例详解
# 使用Kotlin开发Android应用教程
# Android开发必备知识 为什么说Kotlin值得一试
# Android Kotlin开发实例(Hello World!)及语法详解
# 不支持
# 下划线
# 都能
# 可以用
# 希望能
# 不像
# 不能用
# 谢谢大家
# 都对
# 所占
# 符合条件
# 有一个
# 单引号
# 双引号
# 隐式
# println
# Hexadecimals
# doubleValue
# hexValue
# XA8a8a8a8a8a8a8a
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何用搬瓦工VPS快速搭建个人网站?
电商网站制作价格怎么算,网上拍卖流程以及规则?
EditPlus中的正则表达式 实战(4)
Laravel如何使用查询构建器?(Query Builder高级用法)
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
PHP正则匹配日期和时间(时间戳转换)的实例代码
移动端脚本框架Hammer.js
如何在VPS电脑上快速搭建网站?
如何快速搭建高效WAP手机网站吸引移动用户?
如何快速配置高效服务器建站软件?
英语简历制作免费网站推荐,如何将简历翻译成英文?
Python结构化数据采集_字段抽取解析【教程】
如何快速搭建安全的FTP站点?
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
如何快速使用云服务器搭建个人网站?
android nfc常用标签读取总结
如何在宝塔面板中创建新站点?
深圳网站制作平台,深圳市做网站好的公司有哪些?
zabbix利用python脚本发送报警邮件的方法
如何用虚拟主机快速搭建网站?详细步骤解析
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
公司门户网站制作流程,华为官网怎么做?
javascript中闭包概念与用法深入理解
如何在阿里云虚拟主机上快速搭建个人网站?
lovemo网页版地址 lovemo官网手机登录
Python3.6正式版新特性预览
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
如何在阿里云服务器自主搭建网站?
制作旅游网站html,怎样注册旅游网站?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
Linux系统运维自动化项目教程_Ansible批量管理实战
Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
在线教育网站制作平台,山西立德教育官网?
Laravel如何自定义分页视图?(Pagination示例)
在centOS 7安装mysql 5.7的详细教程
EditPlus中的正则表达式 实战(1)
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel怎么为数据库表字段添加索引以优化查询
如何在Ubuntu系统下快速搭建WordPress个人网站?
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
C语言设计一个闪闪的圣诞树
如何快速生成凡客建站的专业级图册?
如何在云虚拟主机上快速搭建个人网站?
如何快速生成高效建站系统源代码?
Bootstrap CSS布局之列表

