首先需要注意的

1 定义只读局部变量使用关键字 val 定义。只能为其赋值一次,

2 定义全局变量使用关键字var定义,

java中定义一个TextView的id如下

private TextView text;

在kotlin中定义则如下(注意用冒号分隔)

private var text : TextView? = null

(解释TextView后面?的作用: 当某个变量的值可以为 null 的时候,必须在声明处的类型后添加 ? 来标识该引用可为空。)

对比 可以发现

kotlin 定义需要知道变量是定义全局的还是定义局部的,然后在写变量名 :变量的类型 ?=null

kotlin中默认初始化了,如果没有赋值,默认是初始化值, 这里面TextView 是String类型的.

接着在定义Int 类型对比看看

java定义:

int a ;

kotlin定义;

var a: Int = 0

kotlin可以自动推算出类型
val b = 2   // 自动推断出 `Int` 类型

这里b没有声明类型 ,但是kotlin可以自动推断出b是int类型 以为后面给一个2

注意 以下是不可取的,
val c: Int  // 如果没有初始值类型不能省略
c = 3       // 明确赋值

kotlin的定义刚才已经说了,

可以直接赋值 var c =3   也可以 var c:int = 0 然后在给c赋值

kotlin定义变量相关推荐

  1. Kotlin定义静态变量、静态方法

    Kotlin定义静态变量.静态方法 kotlin定义静态变量.方法可以采用伴生对象companion object的方式. 经典例子,实例化Fragment. java写法: public class ...

  2. 【Kotlin】变量简介 ( 可空类型 | lateinit | 初始化判定 | 非空类型 | !! 与 ? 修饰符 | ?= ?. ?: 运算符 | 抽象属性变量)

    文章目录 I . Kotlin 变量总结 II . Kotlin 非空变量 III . 非空变量不能赋空 IV . lateinit 关键字 V . lateinit 初始化判定 VI . Kotli ...

  3. java val变量声明_Kotlin 中 var 与 val 定义变量的区别,及使用场景

    看 Kotlin 项目示例代码中,经常出现 var / val 定义变量的情况.于是查了一下两者的区别: var 定义的变量可以被再次赋值.var 是 variable 的缩写. val 定义的变量不 ...

  4. js中定义变量之②var let const的区别

    var 上一篇文章有讲过,是js定义变量的关键词. 但是在es6中,新添加了两个关键词,用于变量声明的关键词:let 和const 接下来就说一下var let 和const的区别: 首先说var 用 ...

  5. c语言lang变量,02-GoLang定义变量

    变量的常规定义 1.1定义一个变量,先定义再初始化 var num int num = 666 fmt.Printf("%d\n",num) 1.2定义的同时初始化 var num ...

  6. php7 定义变量,基于PHP7的PHP扩展开发之七(定义变量)

    目的:熟悉在PHP扩展里面如何定义变量 要实现的PHP代码如下: class lostphp{} $lng = 2; $str = "abc"; $arr = array(1,'a ...

  7. mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  8. 定义变量时无引号,单引号,双引号区别与特点:

    a=192 a=192-$a b='192-$a' c="192-$a" echo "a=$a" echo "b=$b" echo &quo ...

  9. shell中定义变量用双引号和单引号以及不用引号的区别

    1. 单引号 使用单引号的情况下,不管里面的是否有变量或者其他的表达是都是原样子输出 2. 双引号 如果其定义变量的时候使用双引号的话,则里面的变量或者函数会通过解析,解析完成后再输出内容,而不是把双 ...

最新文章

  1. 积少成多 Flash(ActionScript 3.0 Flex 3.0) 系列文章索引
  2. MySQL statefulset_Kubernetes进阶之StatefulSet有状态部署
  3. mysql 关联更新_MySQL 规范
  4. String到底是值类型还是引用类型(C#)
  5. TIOBE 12月编程语言排行榜:Python有望第四次成为年度语言
  6. is,as,sizeof,typeof,GetType
  7. 鲲云获数千万A轮融资:开发全球首颗数据流AI芯片,实现数据流架构的创新突破!
  8. 计算机不能上网 检查路线,腾达(Tenda)路由器不能上网的解决方法
  9. intel 面试总结
  10. 游戏出海,技术先行 ——UCloud助力出海业务最佳实践直播公开课
  11. MySQL数据类型详解
  12. win7 计算机刷新dns,刷新dns,教您怎么刷新DNS
  13. 一、Spark安装与部署
  14. 计算机网络自顶向下第七版第二章课后答案,《计算机网络·自顶向下方法》第七版 第二章 课后习题与问题 答案...
  15. 2021SC@SDUSC Zxing开源代码(九)Wifi 二维码结果处理
  16. 幼儿园数学目标_大班数学领域目标
  17. 如何高效读懂一本书(附10种读书方法)
  18. android发短信!渣本毕业两年经验,终局之战
  19. java微信支付 需要证书吗_java引用微信支付的p12证书文件
  20. 大数据高级开发工程师——Spark学习笔记(8)

热门文章

  1. rancher部署项目Validation failed in API: Deployment.apps“”must be no more than 63 characters问题原因及解决方法
  2. 2021-2027年中国一氧化氮行业市场研究及前瞻分析报告
  3. 2021-2027全球与中国经颅磁刺激仪(TMS)市场现状及未来发展趋势
  4. 通过python利用哈希值实现比较两个文件的一致性
  5. linux高效办公环境配置(vim、tmux、bash_profile)
  6. SMOTE算法代码实现-机器学习
  7. tinybert华为
  8. 【图论】有向无环图的拓扑排序
  9. GPU自动调度卷积层
  10. GPU加速:宽深度推理