golang常用手册:数组、变量作用域、函数
生活随笔
收集整理的這篇文章主要介紹了
golang常用手册:数组、变量作用域、函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學習是一個趁熱打鐵的過程,高效的學習能提高大腦反應。所以我們接著了解go語言的數組、變量作用域、函數。
數組
- 和其他語言申明類似:var variable_name [SIZE] variable_type
- 所有數據的數據類型相同且唯一
- 數據長度固定且不可更改
- 通過位置獲取元素
我們可以看看一小段代碼:
//定義名稱為balance長度為10的float32數組 var balance [10] float32//初始化 balance = {1000.0, 2.0, 3.4, 7.0, 50.0}//當然下面這樣直接申明和初始化 var balance = [10]float32{1000.0, 2.0, 3.4, 7.0, 50.0}//如果忽略 [] 中的數字不設置數組大小,Go 語言會根據元素的個數來設置數組的大小: var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}//多維數組格式: var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type var a = [3][4]int{ {0, 1, 2, 3} , /* 第一行索引為 0 */{4, 5, 6, 7} , /* 第二行索引為 1 */{8, 9, 10, 11} /* 第三行索引為 2 */ } 復制代碼變量作用域
正如我們了解的其他語言一樣,go一樣存在了變量以及他的作用域。同樣的,跟我們以往的了解一樣,go的變量作用域有以下幾點:
- 局部變量(在函數中申明的變量。作用域只在函數體內,參數和返回值變量也是局部變量)
- 形式參數(函數參數)
- 全局變量(在函數外申明的變量)
注意:go語言中局部變量和全局變量可以同名,但是函數中會悠閑考慮同名的局部變量。
函數
和其他任何語言一樣,go語言一樣存在函數,函數固定格式如下:
func function_name( [parameter list] ) [return_types] {函數體 } 復制代碼func是函數申明標志,function_name是函數名稱,當然函數參數和函數返回值都是可以沒有的。
需要注意的是,go語言可以有多個返回值:
package mainimport "fmt"func swap(x, y string) (string, string) {return y, x }func main() {a, b := swap("Mahesh", "Kumar")fmt.Println(a, b) } 復制代碼函數參數傳遞方式(和C語言類似):
- 值傳遞
- 將需要傳遞的數據拷貝一份并賦值給被調用函數的參數
- 引用傳遞
- 在調用函數的時候把數據的內存地址傳遞過去,在函數中依據地址對數據進行修改將會影響實際值。(和c語言中的指針操作一樣)
函數的用法:
- 作為數據值使用(不推薦,一定層面上降低了可讀性)
- 閉包:匿名函數,可在動態編程中使用
- 方法:包含了接受者的函數,接受者可以是命名類型或者結構體類型的一個值或者是一個指針。所有給定類型的方法屬于該類型的方法集。
- 語法:func (variable_name variable_data_type) function_name() [return_type]{···}
關于方法的demo我們參考下菜鳥教程:
package mainimport ("fmt" )/* 定義函數 */ type Circle struct {radius float64 }func main() {var c1 Circlec1.radius = 10.00fmt.Println("Area of Circle(c1) = ", c1.getArea()) }//該 method 屬于 Circle 類型對象中的方法 func (c Circle) getArea() float64 {//c.radius 即為 Circle 類型對象中的屬性return 3.14 * c.radius * c.radius } 復制代碼總結
go語言有著和其他語言的共性,均有數組、變量作用域、函數等基本概念。
其中數組和其他語言的操作方式基本相同,變量作用域也是一樣的效果,唯一值得注意的是局部變量和全局變量同名時,在方法中優先考慮局部變量。
函數,其實也是我們java中說的方法,但是go語言中的方法則是有指明 接受者 的函數。
如果你認可我所做的事情,并且認為我做的事對你有一定的幫助,希望你也能打賞我一杯咖啡,謝謝。
總結
以上是生活随笔為你收集整理的golang常用手册:数组、变量作用域、函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Memtest86-7.1内存测试工具
- 下一篇: canvas系列教程02-直线和曲线