# GO的數據類型定義
```go
//運行第一個程序
package main
func main(){
print("Hello World")
}
```
> 在GO語言中,一個程序只能有一個main包,對應只能有一個main方法,若無法滿足這個條件,編譯時將會報錯。注釋方式與PHP相同
1. import的使用
> 個人在使用import時,按照自己的編寫習慣,依賴IDE的自動導包功能,實現包的導入。若導入包后沒有使用,會編譯出錯。
```go
// 使用 . 來實現省略調用
import . "fmt"
// 在包前通過別名替代包名
import stdio "fmt"
// 包前使用 _ 作用為只調取包的init方法
import _ "xxx"
// 使用 () 實現多包導入
import (
"fmt"
"os"
)
```
2. GO的可見性
> GO通過大小寫來判別函數或者變量的權限,小寫則為private,大寫為public
3. 定義數據結構
> GO定義數據類型比較有意思。在函數體內使用var定義的變量必須被使用,否則編譯報錯,申明外部變量沒有限制
1. 布爾類型
> 布爾類型只有true與false兩個值,不可用0與1替代
2. 整形
> int類型根據使用的平臺自動判別32位還是64位,可以手動定義指定的位數,例如 int8/uint16,定義了指定8位的int型/16位的無符號int型
3. 浮點型
> 浮點型有float32/float64,精確范圍對應7/15位
4. 復數類型
> complex64/complex128
5. 其他值類型
> array struct string
6. 引用類型
> slice map chan
7. 接口類型
> inteface
8. 函數類型
> func
```go
// 定義單個變量
var hello = "Hello World"
//定義多個變量
var(
num = 321
str = "haha"
)
//定義常量,定義多個常量與變量的定義一樣
const PI =3.14
```
4. 類型零值
> 零值不等于空值,變量被聲明為某種類型后的默認值,通常情況下整型的默認值為0,bool為false,string為空字符串
5. 類型別名的定義
> 利用type進行類型別名的定義
```go
type(
chinese string
intMax int64
)
```
6. 變量聲明與賦值
```go
變量的聲明格式:var <name> <type>
變量的賦值格式:<name> = <value>
聲明的同時賦值:var <name> [type] = <value>
自身推斷賦值:var <name> = <value>
簡寫賦值(不可全局變量賦值使用) <name> := <value>
```
7. 類型轉換
> 進行類型轉換時,需要進行顯式轉換,并且需要保證兩個不同的類型轉換可以互相兼容
```go
var a = 'a'
b := int(a)
```
8. 常量的定義問題
> 常量值在編譯時已經確定,所以右側的數據需要使用常量或者內置函數,變量不能進行常量的賦值。定義常量組時,如果不進行數值的賦值,將會將其數值賦值為其上行的數值。常量初始化規則定義了每一行的常量定義個數一致時,默認上行數值下行初始化將進行,否則報錯。
> 常量的iota是常量計數器,只在常量的表達式中使用。const中每新增一行常量聲明將使iota計數一次
```go
// 賦值b,c均為hello字符串,賦值g,h為1,2
const(
a = "hello"
b
c
e,f = 1,2
g,h
)
// 輸出 c為2 f為5
const(
a=1
b
c = iota
d
e
f = iota
)
```
- 前言
- PHP進階之路
- 1.LANMP的環境安裝
- C與數據結構
- PYTHON
- JAVA
- GO入門實踐
- 1.入門語法
- 1.安裝配置GO環境
- 2.數據類型定義
- 3.運算符
- 4.控制語句
- 5.數組
- 6.切片
- 7.函數
- 8.結構體
- 注意事項
- Linux爬坑之路
- 1.zabbix服務
- 1.在龍芯Fedora機器上部署
- Git版本控制
- 0.工作流程與原理
- 1.安裝Git
- 2.安裝后配置
- 3.基礎命令
- 數據庫實踐
- 1.SQL基礎語法
- 1.基本語法
- 2.MySQL實踐
- 1.數據庫常用操作
- Docker容器技術
- 1.Docker常用命令
- 2.進階
- Vagrant虛擬化技術
- 1.基本命令詳解
- 2.進階教程
- WEB前端之旅
- CSS入門
- 1.CSS選擇器
- 操作系統
- 雜談一之系統啟動引導