[13th][Day2] 变数

about variable

不管在哪一个程序语言中,我们都需要变数,有了基本的变数,才可以进行数值、字串...等操作

变数就像黏土,开发者把黏土捏成它应该要有的样子,可以让黏土跟黏土合在一起变成更大团的黏土

可以让黏土执行影分身之术,做不同的用途

善用黏土 … 阿不对 … 善用变数,可以让开发变得更顺畅

数字 (Number) 相关的型别
数字型态 (numeric types) 用来表示数字。在 Go 语言中有以下数字型态:

我常用到的数字型态

int
int64
float64

就只有这三种

others :

无号整数

uint8
uint16
uint32
uint64
uint (32 或 64 位元)
带号整数

int8
int16
int32
int64
int (32 或 64 位元)
浮点数

float32
float64
hint:go 只有 float32 float64 没有 float
复数

complex64
complex128

在计算精密小数的时候 建议使用 "github.com/shopspring/decimal" 可以解决很多 float64 在计算时会遇到的诡异情形以及该死的进位问题


about string

golang 有三种字串型态:
string
byte
rune
在预设情形下,应该优先使用 string 型别,除非有明确的理由,才会使用另外两种型别。

string 是以 UTF-8 编码来处理的字串,string 的值视为『单值』而『非字元阵列』。byte 则保持字串原始的内容,不处理编码。
rune 则是将字串以 Unicode code point 切开时所用的型别。(这个小弟还没用过QQ)

若要使用 json.Marshall 或是其他的 json 方法的话 ,[]byte 型态可以帮我很大的忙


about bool

计算机概论里面我记得最深刻的一句话 .... 电脑就是 1 跟 0 的世界

golang 的布林型态只有两个值:
true (表示真)
false (表示伪)

不像有些语言中还有 null(未知)

bool 最常应用到的地方就是 if , 或是有些 DB 的栏位也会用 bool 来作储存


about Parameter Declarations

golang 有多个宣告变数的方式,使用 var 是最基本的方式。例如,宣告一个 x 变数,型态为 int,初始值为 10

var x int = 10

这麽一来,从 x 这个位置开始,储存了 int 长度的值 10
在宣告时,型态写在名称之後。你也可以『同时』建立多个变数

var q, w, e, r int = 94, 87, 94, 53

var (
    x int = 10
    y string = "Eric"
    z bool = true
)

短变数宣告
在函式中,想要定义变数值的场合,可以使用语法糖 (Syntactic Sugar)的宣告方式

x := 10
y := 94.87 //注意 浮点数预设为 float64
z := "Eric"

如果 x 是首次定义,就等於是宣告变数并指定值。上例也可以写成一行:

x, y, z := 10, 94.87, "Eric"

短宣告的左边必须有至少一个尚未宣告过的变数
短宣告常用於多值回传的 function return

同一个变数只能宣告一次,如果这样写就会发生错误

x := 10
x := 56 //  no new variables on left side of :=

宣告变数有三个要件

识别字 (identifier)
该变数的资料型别 (data type)
该变数的值 (value)
在变数命名时,通常会采用下列三种风格之一:

PascalCase、camelCase、snake_case
在 Go 语言中,使用 PascalCase(大写头驼峰式) 和 camelCase(小写头驼峰式) 是不一样的。当识别字使用 PascalCase 时,表示该识别字是公开的 (public)。反之,当使用 camelCase 时,表示该识别字是私有的 (private) 只能在该 package 下使用。

golang 在变数命名上较少使用 snake_case(下底线) 的方式命名


<<:  [Day12] Flutter - 场景路径与转换 ( Auto Router )

>>:  [重构倒数第19天] - i18n什麽的交给前端来处理吧(二) Vue3 载入Vue-i18n

Day20 - Fabricjs 与 Image map 仿制 highlight 场地图 说明

Fabricjs 官方文档 Fabric.js is a powerful and simple J...

8.MYSQL写入表格内容

有了表格,栏位之後就差输入东西了 这边教大家输入栏位里面的资料 INSERT INTO 表格名 VA...

帮 Line Bot 加上身份验证(1)

昨天我们让 Line Bot 可以成功回应使用者验证码了,但是这样只要任何人加入 Line Bot ...

解决line图文选单404问题

真的超哭,搞了很久才发现LINE的API有换过,所以URL要换成别的网址。 疯掉XD,这篇文主要分享...

D26: 工程师太师了: 第13.5话

工程师太师了: 第13.5话 杂记: 蓝画面指的是Windows崩溃停止执行时出现的蓝底白字画面。 ...