欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

go語言三元運(yùn)算符 go 運(yùn)算符

Go語言基礎(chǔ)語法(一)

本文介紹一些Go語言的基礎(chǔ)語法。

成都創(chuàng)新互聯(lián)公司專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、臥龍網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為臥龍等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

先來看一個(gè)簡單的go語言代碼:

go語言的注釋方法:

代碼執(zhí)行結(jié)果:

下面來進(jìn)一步介紹go的基礎(chǔ)語法。

go語言中格式化輸出可以使用 fmt 和 log 這兩個(gè)標(biāo)準(zhǔn)庫,

常用方法:

示例代碼:

執(zhí)行結(jié)果:

更多格式化方法可以訪問中的fmt包。

log包實(shí)現(xiàn)了簡單的日志服務(wù),也提供了一些格式化輸出的方法。

執(zhí)行結(jié)果:

下面來介紹一下go的數(shù)據(jù)類型

下表列出了go語言的數(shù)據(jù)類型:

int、float、bool、string、數(shù)組和struct屬于值類型,這些類型的變量直接指向存在內(nèi)存中的值;slice、map、chan、pointer等是引用類型,存儲(chǔ)的是一個(gè)地址,這個(gè)地址存儲(chǔ)最終的值。

常量是在程序編譯時(shí)就確定下來的值,程序運(yùn)行時(shí)無法改變。

執(zhí)行結(jié)果:

執(zhí)行結(jié)果:

Go 語言的運(yùn)算符主要包括算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符以及指針相關(guān)運(yùn)算符。

算術(shù)運(yùn)算符:

關(guān)系運(yùn)算符:

邏輯運(yùn)算符:

位運(yùn)算符:

賦值運(yùn)算符:

指針相關(guān)運(yùn)算符:

下面介紹一下go語言中的if語句和switch語句。另外還有一種控制語句叫select語句,通常與通道聯(lián)用,這里不做介紹。

if語法格式如下:

if ... else :

else if:

示例代碼:

語法格式:

另外,添加 fallthrough 會(huì)強(qiáng)制執(zhí)行后面的 case 語句,不管下一條case語句是否為true。

示例代碼:

執(zhí)行結(jié)果:

下面介紹幾種循環(huán)語句:

執(zhí)行結(jié)果:

執(zhí)行結(jié)果:

也可以通過標(biāo)記退出循環(huán):

--THE END--

golang 方法返回的結(jié)構(gòu)體為什么取不到地址?

golang方法(method)返回值提取結(jié)構(gòu)體(struct)取不到地址的原因是,①返回值并沒有保存到變量中,返回值本身只是臨時(shí)保存在程序運(yùn)行的堆棧的某個(gè)不確定位置,不能取地址;②實(shí)參取地址用的操作符是是,而形參聲明變量類型為指針,需要地址值用的才是*;③聲明形參為指針的參數(shù)的實(shí)參只能為地址值。

故先把修改后的代碼列出,修改要點(diǎn)是把“*NewPerson1().Speak()”改為“var b=NewPerson1();(b).Speak()”,同時(shí)把“NewPerson2().Speak()”改成“var a=NewPerson2();(a).Speak()”,代碼列出如下:

package main;

import "fmt";

type PersonA struct{

name string

}

func (p *PersonA) Speak () {

fmt.Println ( "person speak" ,p.name)

}

func (p PersonA) Walk ( ){

fmt . Println ( "person walk",p.name)}

func NewPerson1()(p PersonA){

return PersonA{"new Person1"}}

func NewPerson2()(p PersonA){

return PersonA{"new Person2"}}

func main () {

var a=NewPerson2 (); (a).Speak ();?

a .Walk ();

fmt. Println ("--------------------")?;

var b=NewPerson1 ();(b).Speak ();

b.Walk ()}

go代碼調(diào)試效果

關(guān)于指針變量的使用這一點(diǎn)go語言和其他有指針的程序語言如c語言是一樣的,從來只有返回值為地址/指針,而從沒有在賦值前給返回值取地址這種運(yùn)算,類似的錯(cuò)誤晚點(diǎn)再整理。

不一樣的是,go語言更簡單go語言函數(shù)可以使用結(jié)構(gòu)體或者結(jié)構(gòu)體的指針(pointer)以傳遞結(jié)構(gòu)體參數(shù),而且和c語言不一樣的是,go語言沒有區(qū)分結(jié)構(gòu)體指針和結(jié)構(gòu)體訪問成員的運(yùn)算符,go語言只有“.”適用于兩種情況,而沒有c語言為結(jié)構(gòu)體指針專門準(zhǔn)備的“-”運(yùn)算符。

可以使用結(jié)構(gòu)體指針,作為結(jié)構(gòu)體的方法的參數(shù)以指代自身嗎,

Go語言中new和 make的區(qū)別詳解

1、new 的主要特性

首先 new 是內(nèi)建函數(shù),定義也很簡單:

func new(Type) *Type

內(nèi)建函數(shù) new 用來分配內(nèi)存,第一個(gè)參數(shù)是一個(gè)類型,不是一個(gè)值,返回值是一個(gè)指向新分配類型零值的指針

實(shí)現(xiàn)一個(gè)類似 new 的功能:

func newInt() *int {

var i int

return i

}

someInt := newInt()

函數(shù)的功能跟 someInt := new(int) 一模一樣。定義 new 開頭的函數(shù)時(shí),出于約定也應(yīng)該返回類型的指針。

2、make 的主要特性

make 也是內(nèi)建函數(shù),定義比 new 多了一個(gè)參數(shù),返回值也不同:

func make(Type, size IntegerType) Type

內(nèi)建函數(shù) make 用來為 slice,map 或 chan 類型分配內(nèi)存和初始化一個(gè)對(duì)象(注意:只能用在這三種類型上),跟 new 類似,第一個(gè)參數(shù)也是一個(gè)類型而不是一個(gè)值,跟 new 不同的是,make 返回類型的引用而不是指針,而返回值也依賴于具體傳入的類型,具體說明如下:

Slice: 第二個(gè)參數(shù) size 指定了長度,容量和長度相同。

可以傳入第三個(gè)參數(shù)來指定不同的容量值,但必須不能比長度值小。

比如 make([]int, 0, 10)

Map: 根據(jù) size 大小來初始化分配內(nèi)存,不過分配后的 map 長度為 0,如果 size 被忽略了,那么會(huì)在初始化分配內(nèi)存時(shí)分配一個(gè)小尺寸的內(nèi)存

Channel: 管道緩沖區(qū)依據(jù)緩沖區(qū)容量被初始化。如果容量為 0 或者忽略容量,管道沒有緩沖區(qū)。

3、總結(jié)

new 的作用是初始化一個(gè)指向類型的指針(*T),make 的作用是為 slice,map 或 chan 初始化并返回引用(T)。

golang中有類似其他語言的三目運(yùn)算符的東西沒

沒有的,go中只能這樣

var a int

if x 0 {

a = 1

} else {

a = 2

}

Go語言中的符號(hào)"

左移運(yùn)算符()

將一個(gè)運(yùn)算對(duì)象的各二進(jìn)制位全部左移若干位(左邊的二進(jìn)制位丟棄,右邊補(bǔ)0)。

例:a = a 2 將a的二進(jìn)制位左移2位,右補(bǔ)0,

左移1位后a = a * 2;

若左移時(shí)舍棄的高位不包含1,則每左移一位,相當(dāng)于該數(shù)乘以2。

右移運(yùn)算符()

將一個(gè)數(shù)的各二進(jìn)制位全部右移若干位,正數(shù)左補(bǔ)0,負(fù)數(shù)左補(bǔ)1,右邊丟棄。

操作數(shù)每右移一位,相當(dāng)于該數(shù)除以2。

例如:a = a 2 將a的二進(jìn)制位右移2位,

左補(bǔ)0 or 補(bǔ)1 得看被移數(shù)是正還是負(fù)。

【10】Go語言運(yùn)算符及運(yùn)算符的優(yōu)先級(jí)

運(yùn)算符用于在程序運(yùn)行時(shí)執(zhí)行數(shù)學(xué)或邏輯運(yùn)算。

1.算術(shù)運(yùn)算符

Go 語言的算術(shù)運(yùn)算符如圖,假設(shè)A值為10,B值為20。

2.關(guān)系運(yùn)算符

Go 語言的關(guān)系運(yùn)算符如圖,假設(shè)A值為10,B值為20。

3.邏輯運(yùn)算符

Go 語言的邏輯運(yùn)算符如圖。假定A值為True,B值為False。

4.位運(yùn)算符

位運(yùn)算符對(duì)整數(shù)在內(nèi)存中的二進(jìn)制位進(jìn)行操作。

位運(yùn)算符比一般的算術(shù)運(yùn)算符速度要快,而且可以實(shí)現(xiàn)一些算術(shù)運(yùn)算符不能實(shí)現(xiàn)的功能。如果要開發(fā)高效率程序,位運(yùn)算符是必不可少的。

Go 語言的位運(yùn)算符如圖。假定 A = 60,B = 13,其二進(jìn)制數(shù)轉(zhuǎn)換如下。

A = 0011 1100

B = 0000 1101

5.賦值運(yùn)算符

Go 語言的賦值運(yùn)算符如圖。

6.其他運(yùn)算符

Go 語言的其他運(yùn)算符如圖。

運(yùn)算符的優(yōu)先級(jí)

所謂優(yōu)先級(jí),就是當(dāng)多個(gè)運(yùn)算符出現(xiàn)在同一個(gè)表達(dá)式中時(shí),先執(zhí)行哪個(gè)運(yùn)算符。

新聞標(biāo)題:go語言三元運(yùn)算符 go 運(yùn)算符
當(dāng)前網(wǎng)址:http://chinadenli.net/article46/higheg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)網(wǎng)站收錄定制開發(fā)云服務(wù)器網(wǎng)站改版電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)