Day5-Go变数介绍

变数型态

在学习 Go 语言前,我们先了解一下一些基本的变数型态(type),可简单分成以下几种:

字串

Go 语言里,字串必须用双引号框起来,里头不为程序。

https://ithelp.ithome.com.tw/upload/images/20210913/20137500gzuIVBOi7y.png

整数

Go 语言,整数可分成两种,int(一般的整数)和 uint(无符号整数,即非负整数),而这两种整数又有位元差别,分成8、16、32、64bit,但在使用上,最常使用的为 int32 和 int64,而这些型态虽然都为整数,但不能将不同位元的整数一起运算,程序边一时会报错。

https://ithelp.ithome.com.tw/upload/images/20210913/20137500kdf439BQyy.png

浮点数

Go语言中浮点数即为数学上的实数,跟整数一样,有位元的差别,一样较常用的为 float32 和 float64。

https://ithelp.ithome.com.tw/upload/images/20210913/20137500n6PXuKw7Yh.png

Go语言中进行运算时,是将数字先转换成二进位,,而大多数浮点数表示成二进位後是近似值,以0.1为例子,将期以二进位表示是相当复杂的,为0.00011001100...,我们这里以一个例子举例,下面程序是在进行0.2 + 0.4的运算,我们看一下结果为何:

package main
 
import (
   "fmt"
)
 
func main() {
   var f1 float64 = 0.2
 
   var f2 float64 = 0.4
 
   var f3 float64 = 0.6
 
   fmt.Println(f1+f2, f3) //0.6000000000000001 0.6
}

大家应该都会想说0.2 + 0.4应该等於0.6,但结果为0.6000000000000001,即是我们刚刚说的原因,程序会先将数字先转换成二进位再进行运算。

布林值

布林值为判断对错的一个值,其值只分为两种,为 true 和 false,常常与 if else 叙述一起使用(if else叙述式在後面章节介绍)。

https://ithelp.ithome.com.tw/upload/images/20210913/20137500HISXOfi4kv.png


变数宣告

Go在宣吿变数的分法,分为两种:

var

此宣告变数为宣告变数型态(type),可以先不必宣告变数的值,而是以 default 值带入,可以参考以下程序码:

package main
 
import (
   "fmt"
)
 
func main() {
   var f1 int64
 
   var f2 float64
 
   var f3 string
 
   var f4 bool
 
   fmt.Println(f1, f2, f3, f4) // 0 0  false
}

而此种变数宣告方法,可以在 function 外宣告变数,不一定要在 function 里做,

package main
 
import (
   "fmt"
)
 
var f1 int64
 
func main() {
   fmt.Println(f1) // 0
}

:=

此种变数宣告方式,为直接宣告数值,且他无法在 function 外宣告,必须在 function 内使用,可参考以下程序码:

package main
 
import (
   "fmt"
)
 
func main() {
   f1 := 0 
 
   fmt.Println(f1) // 0
}

结语

今天带来 Go 语言比较基础的变数型态,当然之後还会介绍其他比较复杂型态。感谢各位读者今天的阅读!


<<:  [CSS] Flex/Grid Layout Modules, part 8

>>:  Day13 - 动态 新增/删除 Collection 项目(一)

DAY20 - [JS] 小结与番外篇:浅拷贝 与 深拷贝

今日文章目录 番外篇:浅拷贝 番外篇:深拷贝 小结 ToDoList + 番茄钟时间管理,整体上练...

DAY26:Google Map之简介及实作

今天要来说到在APP中加入Google map,以下概略的介绍一些建置与功能用法,首先,我们要来新增...

Day24 axios基本语法(GET、POST请求)?

大家好我是乌木白!今天要和大家讲 axios 基本语法~ 在处理 AJAX 的时候,有一些套件可以...

Day11 永丰金API 回顾

透过前几天的内容,我们已经大概了解永丰金流api的流程, 以及对应的api所需参数和回传内容,并且提...

Day11 天气API小实作1

因为这次我接的API是openweather,所以我们开始前要先到他们的官网去申请帐号哦! 注册完後...