day2-變量與數據類型

變量

概念:程序的基本組成單位

定義:

  • 指定變量類型
  • 根據值自行判斷變量類型(類型推導)
  • 省略var,定義賦值
    var i int
	var i = 10
	i, j := 20, 10

數據基本類型

基本數據類型:數值型、字符型、布爾型、字符串
派生數據類型:指針、數組、結構體、管道、函數、切片、接口、map


注意點

  • 如果變量沒有賦值,會初始化值,int爲0,string爲空字符串
  • 程序中的加法,如果兩值爲數值類型,則做加法,反之爲字符串類型,則做字符拼接
  • 非同類型數值不能相加,比如1,1.2
  • 定義字符變量要用雙引號

整型

  • 整數區分有符號、無符號,int,uint的大小和系統有關
  • golang的整數默認聲明爲int型
  • unsafe.Sizeof(n2),查看變量字節大小和數據類型
  • 儘量使用佔用空間小的數據類型
  • bit:計算機中最小存儲單位
  • byte:計算機中最基本的存儲單元 1byte = 8bit


浮點型

  • 浮點型都是有符號的
  • 尾數部分可能會丟失,造成精度丟失(-111.1234567)
  • float64要比float32更精確
  • 浮點型有固定的範圍和字段長度,不受系統影響
  • 浮點型常量有2中表現方式(十進制形式:1.22|.22必須有小數點。科學計數法:5.1234e2=5.12*10的2次方|5.12E-1:5.12/10的2次方)

字符類型

  • golang中沒有特意的字符類型,如果想存儲單個字符,一般用byte來存儲,傳統的字符串是由字符組成,而go是由字節byte組成
  • 如果我們保存的字符在ASCII表中,可以只用byte
  • 如果我們的字符對應碼值大於255,考慮用int來保存
  • 如果需要按照我們輸入的格式輸出,需要格式話%c
  • 字符串常量用‘’單引號括起來
  • 字符的本質是數字,輸出是,是該字符串utf8的碼值
  • 給變量賦值一個數字,按格式輸出,會輸出該數字對應的unicode字符
  • 字符類型是可以運算的,整數+字符,會將字符轉換成碼值計算
字符串本質
  • 存儲:字符-對應碼值-二進制-存儲
  • 讀取:二進制-碼值-字符-讀取
  • 字符和碼值的對應關係是通過字符編碼表來決定的

布爾類型

  • 布爾值只有true和false
  • 只佔一個字節
  • 主要運用於邏輯運算

string類型

  • 字符串就是由一串固定長度的字符拼接起來的字符序列
  • 字符串一旦賦值,不可更改
  • 字符串雙引號會識別轉義字符
  • 字符串反引號原生格式輸出,可以防止攻擊、輸入源代碼等
  • 一行拼接字符串太長,+號必須寫在上一行

數據類型基本轉換

  • (數值轉換)轉換可以從範圍小到範圍大,也可以從範圍大到範圍小
  • (數值轉換)從範圍大到範圍小,編譯不會報錯,只是轉換的結果按照溢出處理
  • (任何類型-string)1、Sprintf 2.strconv.fommat
  • (string—任意類型)strconv.Parse

指針

  • 基本數據類型,存儲的是值,也叫值類型
  • 獲取變量的地址用&i
  • 獲取指針變量的值*i
  • 值類型包括:int、float、bool、string、數組、結構體struct
  • 引用類型:指針、slice切片、map、管道chan、interface
  • 值類型內存通常在棧中分配
  • 引用類型通常在堆上分配,當沒有任何變量引用這個地址時,該地址對應的數據空間就會成爲一個垃圾,由gc來回收

標識符

命名規範
  • 由26個英文字母大小寫、0-9,‘_’組成
  • 數字不可以開頭
  • 嚴禁區分大小寫
  • 不能包含空格
  • 下劃線_本身就是個特殊的標識符,返回的值會被忽略
  • 不能以系統保留關鍵字作爲標識符(if、break)
  • 變量名採用駝峯
  • 變量名、函數名、常量如果首字母大寫,可以被其他類使用,如果小寫,只能在本類中使用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章