05-kotlin-变量与输出

kotlin回顾

回顾下以前我们敲过的案例

fun main(args:Array<String>){  //固定写法,目前先记忆
  println("hello kotlin")  //println是打印内容到控制台的意思
}

作业: 编写main函数, 在控制台打印 I love kotlin

fun main(args:Array<String>){  //固定写法,目前先记忆
  println("I love kotlin")  //println是打印内容到控制台的意思
}

用自然语言重读HelloWorld

fun main(args:Array<String>){  
  println("hello kotlin") 
}
计算机给我执行一段任务,
任务的入口是main方法,参数是一个字符串数组类型的
执行的内容是打印hello kotlin到控制台

存储数据

计算机程序是跟数据打交道的,我们编写的绝大多数程序都是在处理或者记忆数据,
下面我们要学习如何声明和记忆数据.

fun main(args:Array<String>){
// 计算机给我一块空间 存储一个值为18的数据 , 这块空间的名字为age
    var age =18
    println("存储的年龄是="+age)
}

  fun main(args:Array<String>){
// 计算机给我一块空间 存储一个值为"小华华"的数据 , 这块空间的名字为name
    var name="奥娃"
    println("存储的名字是="+name);
}

在kotlin里面如果我们需要存储一个数据,只需要var一下, 给数据起个名字,放进去就行了

变量和容器

变量观念是培养程序设计能力的基础
因为在程序中的数据都必须通过变量来处理
处理不同的数据,必须使用不同的变量类型
平时我们上街的时候,有人总会拎个小包或者手提袋什么的
装上点儿琐碎的东西,回家以后就取出东西来,将袋子扔到一边去
计算机里也得用上这种小包或小袋子
把我们输入的字符串或者数值装起来,要的时候就取出来

逛沃尔玛

逛沃尔玛之前,我们准备了这样几种容器, 鸡蛋盒, 冷藏盒, 木酒盒
如果我们买了鸡蛋,只需要把鸡蛋放入鸡蛋盒,买了肉把肉放进冷藏盒,
买了红酒把红酒放入木酒盒.不同的东西放入不同的盒子里,方便管理.
数据也不易损坏.

同样的,kotlin程序也给我们实现准备好了很多类型的盒子,
用于存放不同类型的数据.

体会代码

fun main(args:Array<String>){
//计算机给我一个盒子,盒子的标签叫name, 里面放入字符串"小华华"
var name="小华华" 
//盒子里面不放"小华华"了 放字符串"奥娃"
name="奥娃" 
println("名字是:"+name)
}

程序正确执行,最后打印 名字是:奥娃

fun main(args:Array<String>){
//计算机给我一个盒子,盒子的标签叫name, 里面放入字符串"小华华"
   var name="小华华"
//盒子里面不放"小华华"了 放字符串"奥娃"
   name=18
   println("名字是:"+name)
}

大家注意红色错误,第三行代码已经报错.
大家思考一下, 一个放肉的盒子适合放鸡蛋么?

常见容器的类型

 Byte     存储值范围 整数-128~127
 Short  存储值范围   整数-32768~32767
 Int       存储值范围    整数-2147483648~2147483647
 Long     存储值范围 整数-9223372036854775807 ~ 9223372036854775807
 Float   存储值范围  小数,小数点可以精确到6位
 Double 存储值范围   小数,小数点可以精确到15-16位
 String 存储值范围   字符串,用"'双引号引起来的字符串都可以存

遇见整数一般Int够用了, 遇见小数高精度选Double,低精度选Float,字符串就用String

类型推断(Type inference)

类型推断是kotlin的一大特色,我们用代码来解释一下

fun main(args:Array<String>){
    var name="小华华"//自动推断name的类型是字符串类型
    name=18.0//把小数18.0放入name 程序报错
    println("名字是:"+name)
}
fun main(args:Array<String>){
    var age = 18 //自动推断出age的类型是Int整数
    age ="张三" //把字符串放入整数容器,程序报错
    println("年龄是:"+age)
}
Paste_Image.png

显式类型声明

fun main(args:Array<String>){
    var name
}

上面的代码会报错,原因是我们告知计算机给我一块存储空间,标签叫name,
由于没有指定name里面存放的内容,kotlin无法通过类型推断(Type inference)确定
这块存储空间存放什么类型的数据.代码报错.
我们可以通过显式类型声明来告知计算机这块空间的数据类型是什么
具体写法如下,采用冒号后面跟数据类型

fun main(args:Array<String>){
     var name:String
 }

name显式声明是字符串类型,存入整型数字13报错


name显式声明是字符串类型,存入字符串"13"不再报错


注意区别

13是整型数字,"13"是字符串, 加上引号就是字符串,不加引号是数字

变量和常量

变量是一个容器,里面存放的是可以改变的数据.
常量是一个容器,里面存放的是不可以改变的数据.

上面的代码我们声明了变量name,存放String类型的数据,
接下来我们在name这个容器里面分三次存放了"小华华","妮妮","奥娃"
这个name就是一个变量

有时候某个容器里的数据要求是固定不变的,我们就可以用常量声明


上面的代码我们定义了PI等于3.1415026,
但是在第4行,我们发现PI还可以修改为1.1
如果一个容器的数据我们希望他是不变的. 可以用val关键字声明


采用val声明的常量不可以被修改.

好啦,今天的车就开到这吧.大家辛苦啦

总结:

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

推荐阅读更多精彩内容