如何让孩子爱上 Kotlin 第三章:变量

2016/07/02 Kotlin

好了我们继续学习 Kotlin 吧。

这次讲变量与常量。

冰封认为,要想好地从头开始理解一门编程语言,就应该站在语言设计者的角度思考问题。比如这篇博客的主题就是变量。

事先提醒

任何要运行的代码都应该放在 main 函数里面。有关 main 函数的概念请见上一篇教程

千万别忘了,本教程内所有代码都省略了 main 函数的部分!读者请自己加上去!

怎么编程

首先我们思考这个最本质的问题。

我们应该怎样让计算机理解我们的逻辑?比如我要做一个 1+1 ,这个已经在上次的教程里讲过了。直接写 1+1 , Kotlin 认识加号。但是当你要计算一个值,并且将它保存下来,并在程序中多次使用,这该怎么办?

变量。

还记得数学书里的 a, b, c, x, y, z 吗?它们都是变量。

所谓变量,就是一直存在,且会产生变化的量。

比如,我们要实现以下逻辑:

我今天要买东西。这是超市的价目表:

物品 单价 需求数量
果冻 5$ 5
蜘蛛 10$ 2
8$ 3
6$ 4

然后你带了 100$。你想知道,你买完东西还剩多少钱。

你当然可以用一个比较长的数学表达式计算出来:

100 - 5 * 5 - 10 * 2 - 8 * 3 - 4 * 6

但是如果你需要分步计算呢?

开始编程

把这个过程在数学上分析出来,你会发现可以这样写:

a = 100
a = a - 5 * 5
a = a - 10 * 2
a = a - 8 * 3
a = a - 4 * 6
println(a)

最后一句 println 是上一篇博客的内容,还记得吧?在屏幕上输出括号里面的东西,这就是 println。

这个数学过程很好理解,不过值得一说的是,这个过程中的等号的含义和数学中的等号含义不同。这里的等号的含义是 赋值 ,而不是 相等 。所谓赋值,就是先计算等号右边的值,再让等号左边的那个东西等于右边的值。

比如, a = 1 + 2 ,就是先计算 1 + 2 ,结果是 3 ,然后就让 a 变成 3。

那么 a = a + 3 呢?(假设在进行这次运算之前, a 的值是 1 )

你可能会有这样的疑问:

从数学上看,一个数怎么可能等于它加上另一个不为 0 的数呢?

理解

事实上,这一点都不奇怪——因为这个等号不是数学上的等号。如果你真的这样想的话,建议你再仔细揣摩一下上面解释赋值那句话。

我写这博客的时候也在带一个新人,他也没怎么明白这个赋值的意思。我跟他解释了半天……最后这句话把他点醒了:

两个 a 是同一时间线上不同时间点的 a。

看到这里说明你已经明白了什么是赋值。

还记得“变量”这个概念吗?

那么,接下来你还需要知道,如何告诉 Kotlin “a 是一个变量” 这个事实了。

因为你知道 a 是一个变量, Kotlin 不知道啊!你得告诉她。

var a = 0

这样她就知道 a 是一个变量了,并且让它等于 0。同理,如果你需要另一个变量 b ,那么

var b = 0

同理。

var a1 = 0
var sb = 0
var my_name = 0

那么,变量的命名有没有什么限制呢?

有。

第一, Kotlin 规定有些名字不能用于变量。比如那个 var ,就不能是一个变量名。当你看到 IDEA 把一个单词染成橙黄色时,你就知道了——橙黄色的单词,是不能成为变量名的。这样的单词,叫做保留字。

以下举几个反例。注意下面这些是不合法的命名!!

var public = 0
var in = 0
var for = 0

第二,名字只能包含数字、字母和下划线,不能有空格,并且第一个字符不能是数字

反面例子:

var 2U = 0
var @u = 0
var ass we can = 0

另外,变量名是区分大小写的。比如

var a = 0
var A = 0

这两个是不同的变量。

变量搞清楚了,赋值也就简单了。

var a = 0
a = 100
a = a / 20
println(a)

另外,你可以声明多个变量。

var a = 0
var b = 0
a = 5
b = 6
a = a + b
println(a)
b = a * b
println(b)

上面的代码中 前四行可以简写成:

var a = 5
var b = 6

另外,知道了变量,那么常量又是什么呢?

在数学中,常量就是一个恒定不变的量。比如圆的周长和直径的比,就是一个不变的量。

在 Kotlin 中,也存在常量的概念。在 Kotlin 中的常量就是一个不允许改变的量。它仅仅有一次赋值的机会,如果你对它二次赋值就会报错。

常量声明非常常用。比如圆周率,或者全局键值对的键等。

你可以在 Kotlin 中声明常量。比如:

val pi = 3.14159265358979

如你所见,关键字 val 表示声明一个常量。在最新版本的 Kotlin 插件中, IDEA 会先分析你的代码,然后判断是否有未曾改变的变量,如果一个变量在你的程序中始终没有改变,它会提醒你将它改为常量。

好了,自己写点代码练习吧。

你学到了什么

  • 变量
  • 赋值
  • 变量命名
  • 常量

Search

    Post Directory



    如果觉得这篇文章给您带来了收获或者说它值得您这么做,您可以选择对我进行捐助。
    下面是微信支付哟