學習是一個趁熱打鐵的過程,高效的學習能提升大腦反應。因此咱們接着瞭解go語言的數組、變量做用域、函數。html
數組java
咱們能夠看看一小段代碼:編程
//定義名稱爲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的變量做用域有如下幾點:閉包
package main
import "fmt"
/* 聲明全局變量 */
var g int
func main() {
/* 聲明局部變量 */
var a, b int
/* 初始化參數 */
a = 10
b = 20
g = a + b
fmt.Printf("結果: a = %d, b = %d and g = %d\n", a, b, g)
}
複製代碼
注意:go語言中局部變量和全局變量能夠同名,可是函數中會清閒考慮同名的局部變量。函數
函數學習
和其餘任何語言同樣,go語言同樣存在函數,函數固定格式以下:spa
func function_name( [parameter list] ) [return_types] {
函數體
}
複製代碼
func是函數申明標誌,function_name是函數名稱,固然函數參數和函數返回值都是能夠沒有的。指針
須要注意的是,go語言能夠有多個返回值:code
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("Mahesh", "Kumar")
fmt.Println(a, b)
}
複製代碼
函數參數傳遞方式(和C語言相似):
函數的用法:
關於方法的demo咱們參考下菜鳥教程:
package main
import (
"fmt"
)
/* 定義函數 */
type Circle struct {
radius float64
}
func main() {
var c1 Circle
c1.radius = 10.00
fmt.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語言中的方法則是有指明 接受者 的函數。
若是你承認我所作的事情,而且認爲我作的事對你有必定的幫助,但願你也能打賞我一杯咖啡,謝謝。