利用 const 可以定義一個(gè)常量
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、五通橋網(wǎng)絡(luò)推廣、小程序制作、五通橋網(wǎng)絡(luò)營(yíng)銷、五通橋企業(yè)策劃、五通橋品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供五通橋建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
const i=100
利用var 可以定義一個(gè)變量
var t int
當(dāng)你將變量賦值以后,在程序不進(jìn)行值的修改就可以當(dāng)常量用
t=i
在一個(gè)包里,定義變量時(shí)使用小寫,格外定義個(gè)取值方法。則,在包外可以通過這個(gè)取值方法獲得值,直接無(wú)法使用。如果要實(shí)現(xiàn)只在函數(shù)內(nèi)部使用,則可以將變量定義在函數(shù)內(nèi)部。
func GetValue() int {
t:=i
return t
}
把文件放在~/.bash_profile 或者/etc/profile
GOROOT go語(yǔ)言當(dāng)前安裝的目錄 例如:/user/local/go
GOPATH go語(yǔ)言的工作區(qū)集合 多個(gè) mac 或 linux : window ;
GOBIN 存放go程序的可執(zhí)行文件的目錄
PATH 方便go語(yǔ)言命令和go程序的可執(zhí)行文件,需要追加其值
環(huán)境變量一定要追加 PATH="$PATH:$GOROOT/bin:$GOBIN"
source ~/.bash_profile 立即生效使用
@microroom 回答得很正確,我補(bǔ)充一點(diǎn)就是n的作用域問題。AddUpper函數(shù)每次被調(diào)用,系統(tǒng)都會(huì)分配一塊新的內(nèi)存給n變量,在AddUpper函數(shù)返回的函數(shù)引用消失前,該n變量都不會(huì)被釋放。在該內(nèi)部函數(shù)中,n可以當(dāng)做全局變量看待(n不是全局變量),同一個(gè)內(nèi)部函數(shù)引用到的是同一個(gè)n變量。
Go語(yǔ)言里面定義變量有多種方式。
使用var關(guān)鍵字是Go最基本的定義變量方式,與C語(yǔ)言不同的是Go把變量類型放在變量名后面:
//定義一個(gè)名稱為“variableName”,類型為"type"的變量
var variableName type
定義多個(gè)變量
//定義三個(gè)類型都是“type”的變量
var vname1, vname2, vname3 type
定義變量并初始化值
//初始化“variableName”的變量為“value”值,類型是“type”
var variableName type = value
按值傳遞函數(shù)參數(shù),是拷貝參數(shù)的實(shí)際值到函數(shù)的形式參數(shù)的方法調(diào)用。在這種情況下,參數(shù)在函數(shù)內(nèi)變化對(duì)參數(shù)不會(huì)有影響。
默認(rèn)情況下,Go編程語(yǔ)言使用調(diào)用通過值的方法來傳遞參數(shù)。在一般情況下,這意味著,在函數(shù)內(nèi)碼不能改變用來調(diào)用所述函數(shù)的參數(shù)??紤]函數(shù)swap()的定義如下。
代碼如下:
/* function definition to swap the values */
func swap(int x, int y) int {
var temp int
temp = x /* save the value of x */
x = y /* put y into x */
y = temp /* put temp into y */
return temp;
}
現(xiàn)在,讓我們通過使實(shí)際值作為在以下示例調(diào)用函數(shù)swap():
代碼如下:
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int = 200
fmt.Printf("Before swap, value of a : %d\n", a )
fmt.Printf("Before swap, value of b : %d\n", b )
/* calling a function to swap the values */
swap(a, b)
fmt.Printf("After swap, value of a : %d\n", a )
fmt.Printf("After swap, value of b : %d\n", b )
}
func swap(x, y int) int {
var temp int
temp = x /* save the value of x */
x = y /* put y into x */
y = temp /* put temp into y */
return temp;
}
讓我們把上面的代碼放在一個(gè)C文件,編譯并執(zhí)行它,它會(huì)產(chǎn)生以下結(jié)果:
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :100
After swap, value of b :200
這表明,參數(shù)值沒有被改變,雖然它們已經(jīng)在函數(shù)內(nèi)部改變。
通過傳遞函數(shù)參數(shù),即是拷貝參數(shù)的地址到形式參數(shù)的參考方法調(diào)用。在函數(shù)內(nèi)部,地址是訪問調(diào)用中使用的實(shí)際參數(shù)。這意味著,對(duì)參數(shù)的更改會(huì)影響傳遞的參數(shù)。
要通過引用傳遞的值,參數(shù)的指針被傳遞給函數(shù)就像任何其他的值。所以,相應(yīng)的,需要聲明函數(shù)的參數(shù)為指針類型如下面的函數(shù)swap(),它的交換兩個(gè)整型變量的值指向它的參數(shù)。
代碼如下:
/* function definition to swap the values */
func swap(x *int, y *int) {
var temp int
temp = *x /* save the value at address x */
*x = *y /* put y into x */
*y = temp /* put temp into y */
}
現(xiàn)在,讓我們調(diào)用函數(shù)swap()通過引用作為在下面的示例中傳遞數(shù)值:
代碼如下:
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int= 200
fmt.Printf("Before swap, value of a : %d\n", a )
fmt.Printf("Before swap, value of b : %d\n", b )
/* calling a function to swap the values.
* a indicates pointer to a ie. address of variable a and
* b indicates pointer to b ie. address of variable b.
*/
swap(a, b)
fmt.Printf("After swap, value of a : %d\n", a )
fmt.Printf("After swap, value of b : %d\n", b )
}
func swap(x *int, y *int) {
var temp int
temp = *x /* save the value at address x */
*x = *y /* put y into x */
*y = temp /* put temp into y */
}
讓我們把上面的代碼放在一個(gè)C文件,編譯并執(zhí)行它,它會(huì)產(chǎn)生以下結(jié)果:
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :200
After swap, value of b :100
這表明變化的功能以及不同于通過值調(diào)用的外部體現(xiàn)的改變不能反映函數(shù)之外。