在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Java轉(zhuǎn)Go之初體驗(yàn)

Android編程精選 ? 來(lái)源:CSDN ? 2023-07-03 10:22 ? 次閱讀

一、萬(wàn)能之Hello World 開(kāi)啟go的大門

直接上代碼

packagemain//表明包

import"fmt"http://導(dǎo)入包fmt控制輸入輸出感覺(jué)和java的System.out和Scanner有點(diǎn)像

funcmain(){
fmt.Println("Hello Go world。");//進(jìn)入這個(gè)世界了
}

輸出結(jié)果:

4b0572e6-1803-11ee-962d-dac502259ad0.png

是不是感覺(jué)還可以。

二、Go語(yǔ)言環(huán)境安裝

4b19a0ae-1803-11ee-962d-dac502259ad0.png

我安裝的是windows版的 雙擊安裝選擇目錄 全程輕松隨意 比想象中簡(jiǎn)單

4b968470-1803-11ee-962d-dac502259ad0.png

配置系統(tǒng)變量,然后就可以開(kāi)始玩了

4bfe97e0-1803-11ee-962d-dac502259ad0.png

三、基礎(chǔ)語(yǔ)法

行分割符:不需要像java一眼每句之后都加一個(gè);表明結(jié)束 每一行都是單獨(dú)的一句 如果非要把幾行語(yǔ)句寫在一起 就需要加分號(hào)了

注釋 : //單行注釋
/*
aaa
bbb
*/

標(biāo)識(shí)符 標(biāo)識(shí)符用來(lái)命名變量、類型等程序?qū)嶓w。一個(gè)標(biāo)識(shí)符實(shí)際上就是一個(gè)或是多個(gè)字母(AZ和az)數(shù)字(0~9)、下劃線_組成的序列,但是第一個(gè)字符必須是字母或下劃線而不能是數(shù)字。

字符串連接 直接用+號(hào)即可連接 這點(diǎn)倒是和java挺像的 但是java里直接用加號(hào)連接的性能不是很好 不知道go語(yǔ)言中是否有相類似的編譯流程

關(guān)鍵字

4c16e994-1803-11ee-962d-dac502259ad0.png

預(yù)定義標(biāo)識(shí)符

4c2bde08-1803-11ee-962d-dac502259ad0.png

四、數(shù)據(jù)類型

4c455de2-1803-11ee-962d-dac502259ad0.png

首先一點(diǎn),給我印象比較深的就是 對(duì)數(shù)字類型添加了很多的包裝,在不同的應(yīng)用范圍內(nèi)使用不同的數(shù)據(jù)類型 例如

int8 有符號(hào) 8 位整型 (-128 到 127)

int16 有符號(hào) 16 位整型 (-32768 到 32767)

int32 有符號(hào) 32 位整型 (-2147483648 到 2147483647)

int64 有符號(hào) 64 位整型 (-9223372036854775808 到 9223372036854775807)

這個(gè)給人感覺(jué)就是對(duì)使用著感覺(jué) 有了更高的要求 像java就是int Integer BigInteger這幾種包裝好的用就行了

當(dāng)然這樣要求的更細(xì)致 感覺(jué)編譯的時(shí)候 就越容易控制 如果方方面面都這么細(xì)致的話 運(yùn)行速度上就可以提高不少的

五、聲明變量

var identifier type 例:var a int;

var identifier1,identifier2 type 例:var a,b string;

指定變量類型,如果沒(méi)有初始化,則變量默認(rèn)為零值
數(shù)值類型(包括complex64/128)為 0
布爾類型為 false
字符串為 “”(空字符串)
以下幾種類型為 nil:
var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口

根據(jù)值自行判定變量類型 例:var d = true (這點(diǎn)就有點(diǎn)像js了)

省略 var, 注意 := 左側(cè)如果沒(méi)有聲明新的變量,就產(chǎn)生編譯錯(cuò)誤,格式:v\_name := value 例:f := “Runoob”

多變量聲明

//類型相同多個(gè)變量,非全局變量
varvname1,vname2,vname3type
vname1,vname2,vname3=v1,v2,v3

//和python很像,不需要顯示聲明類型,自動(dòng)推斷
varvname1,vname2,vname3=v1,v2,v3

//出現(xiàn)在:=左側(cè)的變量不應(yīng)該是已經(jīng)被聲明過(guò)的,否則會(huì)導(dǎo)致編譯錯(cuò)誤
vname1,vname2,vname3:=v1,v2,v3


//這種因式分解關(guān)鍵字的寫法一般用于聲明全局變量
var(
vname1v_type1
vname2v_type2
)

六、常量

const 定義常量關(guān)鍵字 目前感覺(jué)和final static 類似

定義了之后就不能改了 如果代碼里面改了的話 會(huì)報(bào) cannot assign to LENGTH 錯(cuò)誤

4c6f1204-1803-11ee-962d-dac502259ad0.png

下來(lái)就發(fā)現(xiàn)一個(gè)神奇懂東西 iota

iota,特殊常量,可以認(rèn)為是一個(gè)可以被編譯器修改的常量。

iota 在 const關(guān)鍵字出現(xiàn)時(shí)將被重置為 0(const 內(nèi)部的第一行之前),const 中每新增一行常量聲明將使 iota 計(jì)數(shù)一次(iota 可理解為 const 語(yǔ)句塊中的行索引)。

4c8b09be-1803-11ee-962d-dac502259ad0.png

枚舉自增計(jì)數(shù)器 感覺(jué)是這么個(gè)意思

運(yùn)算符

4ca9cbe2-1803-11ee-962d-dac502259ad0.png
4cc3c042-1803-11ee-962d-dac502259ad0.png
4ce48d90-1803-11ee-962d-dac502259ad0.png
4d02a582-1803-11ee-962d-dac502259ad0.png

&這個(gè)就是只有兩個(gè)1的時(shí)候才是1其余都是0

|這個(gè)是只有兩個(gè)0的時(shí)候才是0其余都是1和與剛好相反

^這個(gè)簡(jiǎn)單粗暴兩個(gè)相同的數(shù)字是0不同的時(shí)候是1

4d191dda-1803-11ee-962d-dac502259ad0.png
4d481ea0-1803-11ee-962d-dac502259ad0.png

這個(gè)<<=后面的幾個(gè)都還有點(diǎn)驚艷到我了 厲害厲害

4d61ebbe-1803-11ee-962d-dac502259ad0.png

這兩個(gè)優(yōu)點(diǎn)沒(méi)太看懂 敲個(gè)代碼試一下

packagemain

import"fmt"

funcmain(){
varastring="abc"
varptr*string=&a
fmt.Printf("第1行-a變量類型為=%T
",a);
fmt.Printf("第2行-ptr變量類型為=%T
",ptr);
fmt.Println(*ptr)
fmt.Println(ptr)
}

4d907902-1803-11ee-962d-dac502259ad0.png

加*輸出的是內(nèi)容 不加輸出的就是地址 這個(gè)指針的概念 java里是沒(méi)有的

4da29d6c-1803-11ee-962d-dac502259ad0.png

七、條件語(yǔ)句

4dbac63a-1803-11ee-962d-dac502259ad0.png

這個(gè)select語(yǔ)句真的是看的我欲生欲死

以下描述了 select 語(yǔ)句的語(yǔ)法:

每個(gè) case 都必須是一個(gè)通信

所有 channel 表達(dá)式都會(huì)被求值

所有被發(fā)送的表達(dá)式都會(huì)被求值

如果任意某個(gè)通信可以進(jìn)行,它就執(zhí)行,其他被忽略。

如果有多個(gè) case 都可以運(yùn)行,Select 會(huì)隨機(jī)公平地選出一個(gè)執(zhí)行。其他不會(huì)執(zhí)行。

否則:

如果有 default 子句,則執(zhí)行該語(yǔ)句。

如果沒(méi)有 default 子句,select 將阻塞,直到某個(gè)通信可以運(yùn)行;Go 不會(huì)重新對(duì) channel 或值進(jìn)行求值。

來(lái)來(lái)來(lái) 兩段代碼說(shuō)明一下

packagemain

import(
"fmt"
)

funcfibonacci(c,quitchanint){
x,y:=1,1

for{
select{
casec<-?x:
??????fmt.Printf("x?:?%d,?y?:?%d
",?x,?y)
????????????x,?y?=?y,?x+y
????????case?<-quit:
????????????fmt.Println("quit")
????????????return
????????}
????}
}

func?main()?{
????c?:=?make(chan?int)
????quit?:=?make(chan?int)

????go?func()?{
????????for?i?:=?0;?i?

輸出結(jié)果為:

4dd7d680-1803-11ee-962d-dac502259ad0.png

第二段代碼:

packagemain

import(
"fmt"
"time"
)

funcChann(chchanint,stopChchanbool){
forj:=0;j

輸出結(jié)果為:

4df00cf0-1803-11ee-962d-dac502259ad0.png

這兩個(gè)例子分別說(shuō)明了下面兩點(diǎn)

如果任意某個(gè)通信可以進(jìn)行,它就執(zhí)行,其他被忽略。

如果有多個(gè) case 都可以運(yùn)行,Select 會(huì)隨機(jī)公平地選出一個(gè)執(zhí)行。其他不會(huì)執(zhí)行。

但是有個(gè)疑問(wèn) 為啥第一個(gè)例子里在執(zhí)行偶數(shù)次的時(shí)候 xy會(huì)交換兩次 在下一次調(diào)用的時(shí)候又不會(huì)進(jìn)行交換??jī)?nèi)部是怎么實(shí)現(xiàn)的???真想打個(gè)斷點(diǎn)調(diào)試一下 這個(gè)問(wèn)題如果我往后會(huì)做go的話 我一定會(huì)回來(lái)的!!!!




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 交換機(jī)
    +關(guān)注

    關(guān)注

    21

    文章

    2656

    瀏覽量

    100046
  • JAVA語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    138

    瀏覽量

    20149
  • go語(yǔ)言
    +關(guān)注

    關(guān)注

    1

    文章

    158

    瀏覽量

    9075

原文標(biāo)題:Java 轉(zhuǎn) Go 之初體驗(yàn) !

文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32H5 DA初體驗(yàn)

    本文是接著之前文檔《STM32H5 DA 之初體驗(yàn)(帶 TrustZone)》的后續(xù)之作。
    的頭像 發(fā)表于 01-17 13:39 ?1250次閱讀
    STM32H5 DA<b class='flag-5'>初體驗(yàn)</b>

    三十分鐘入門基礎(chǔ)Go Java小子版

    語(yǔ)法與 C 相近,但功能上有:內(nèi)存安全,GC,結(jié)構(gòu)形態(tài)及 CSP-style 并發(fā)計(jì)算。 適用范圍 本篇文章適用于學(xué)習(xí)過(guò)其他面向?qū)ο笳Z(yǔ)言(Java、Php),但沒(méi)有學(xué)過(guò)Go語(yǔ)言的初學(xué)者。文章 主要從Go
    的頭像 發(fā)表于 08-12 14:32 ?775次閱讀
    三十分鐘入門基礎(chǔ)<b class='flag-5'>Go</b> <b class='flag-5'>Java</b>小子版

    java后端能轉(zhuǎn)鴻蒙app開(kāi)發(fā)嗎

    java后端轉(zhuǎn)鴻蒙app開(kāi)發(fā)好。 還是前端呢
    發(fā)表于 01-29 18:15

    嵌入式Linux系統(tǒng)之初體驗(yàn)

    嵌入式Linux系統(tǒng)之初體驗(yàn)
    發(fā)表于 08-18 09:34

    【NUCLEO-F412ZG試用體驗(yàn)】開(kāi)箱測(cè)評(píng) = 愛(ài)之初體驗(yàn)

    本帖最后由 smilepeng 于 2017-3-7 22:20 編輯 【NUCLEO-F412ZG試用體驗(yàn)】開(kāi)箱測(cè)評(píng) = 愛(ài)之初體驗(yàn)我這小白可算見(jiàn)到你了,看到這么大的片子都好看,真是能裝一大
    發(fā)表于 11-09 11:25

    鴻蒙系統(tǒng)-愛(ài)之初體驗(yàn)

    the Node.js process with a non-zero exit code.所以在燒錄的時(shí)候可能是由于串口的驅(qū)動(dòng)在VS里沒(méi)有設(shè)置好,所以燒錄不了;進(jìn)步的最好方法就是想辦法解決問(wèn)題,同樣希望各路大神不吝賜教,感激不盡,此次初體驗(yàn)就至此,同時(shí)希望官方能整合一款能通用的開(kāi)發(fā)軟件。`
    發(fā)表于 01-04 02:52

    Java技術(shù)在嵌入式系統(tǒng)中的應(yīng)用是什么

    Java 程序語(yǔ)言在其產(chǎn)生之初,是為嵌入式設(shè)備--機(jī)頂盒設(shè)備設(shè)計(jì)的。現(xiàn)在Java又憑借J2MEE和Java Card Platform回到嵌入式系統(tǒng)開(kāi)發(fā)領(lǐng)域。
    發(fā)表于 12-14 07:07

    請(qǐng)問(wèn)前端轉(zhuǎn)鴻蒙怎么過(guò)渡,需要學(xué)習(xí)Java嗎?

    前端轉(zhuǎn)鴻蒙怎么過(guò)渡,需要學(xué)習(xí)Java嗎?
    發(fā)表于 06-08 11:30

    golang和java的文件轉(zhuǎn)儲(chǔ)實(shí)現(xiàn)

    正文日志的轉(zhuǎn)儲(chǔ)和壓縮是非常關(guān)鍵的,它不僅可以減少硬盤空間占用,主要還可以在發(fā)生故障時(shí)根據(jù)日志定位出故障原因。下面來(lái)看看golang和java的文件轉(zhuǎn)儲(chǔ)實(shí)現(xiàn)。go語(yǔ)言:用到了filepa
    發(fā)表于 10-20 17:36

    The Java Language Environment

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.1 Beginnings of the Java Language Project. . . . . . . . . . . . . . 121.2 Design
    發(fā)表于 10-14 17:33 ?0次下載

    Java程序是如何運(yùn)行的

    的,什么是JVM;要理解我們編寫的Java程序,運(yùn)行起來(lái)以后到底是什么樣子,本質(zhì)上就是弄清楚JVM是什么樣子。 Java 程序的代碼是什么樣的 Java誕生之初最大的賣點(diǎn)就是編寫的代碼
    的頭像 發(fā)表于 12-27 09:31 ?1854次閱讀

    go語(yǔ)言枚舉類型怎么用

    java 等,都有原生支持。在 go 中,大家卻找不到 enum 或者其它直接用來(lái)聲明枚舉類型的關(guān)鍵字。從熟悉其它編程語(yǔ)言的開(kāi)發(fā)者轉(zhuǎn)用 go 編程,剛開(kāi)始會(huì)比較難接受這種情況。其實(shí),如果你看到如何在
    的頭像 發(fā)表于 09-02 09:43 ?5223次閱讀

    "Scalable, Distributed Systems Using Akka, Spring Boot, DDD, and Java--轉(zhuǎn)"

    "Scalable, Distributed Systems Using Akka, Spring Boot, DDD, and Java--轉(zhuǎn)"
    發(fā)表于 12-01 18:06 ?6次下載
    "Scalable, Distributed Systems Using Akka, Spring Boot, DDD, and <b class='flag-5'>Java</b>--<b class='flag-5'>轉(zhuǎn)</b>"

    Go/Rust挑戰(zhàn)Java/Python地位

    編程語(yǔ)言方面,Java 和 Python 仍然遙遙領(lǐng)先,并且分別微小增長(zhǎng)了 1.7% 和 3.4%;圍繞 Go (增長(zhǎng) 20%) 和 Rust (增長(zhǎng) 22%) 的興趣則大幅增加。報(bào)告稱,如果這種
    的頭像 發(fā)表于 03-06 10:19 ?728次閱讀

    STM32H5 DA 之初體驗(yàn)(帶 TrustZone)

    電子發(fā)燒友網(wǎng)站提供《STM32H5 DA 之初體驗(yàn)(帶 TrustZone).pdf》資料免費(fèi)下載
    發(fā)表于 02-19 14:19 ?0次下載
    STM32H5 DA <b class='flag-5'>之初體驗(yàn)</b>(帶 TrustZone)
    主站蜘蛛池模板: 精彩视频一区二区三区 | 免费黄色成人 | 大尺度在线播放 | 欧美色图久久 | 日本最顶级丰满的aⅴ艳星 日本最好的免费影院 | 天堂成人在线观看 | 男人和女人做a免费视频 | 老色网站| 国产99久久九九精品免费 | 亚洲福利视频一区二区 | 四虎影院在线播放 | 黄在线观看网站 | 乱码中文字幕人成在线 | 国产成人综合网在线播放 | 色婷婷一区 | 日日噜噜噜噜人人爽亚洲精品 | 免费大片黄在线观看日本 | 中国一级特黄aa毛片大片 | 扛着高跟鞋丝袜腿呻吟视频 | 日本高清视频在线www色 | 亚洲a网站 | 777奇米影视笫四色88me久久综合 | 夜夜摸视频网 | freesexvideo性欧美医生护士 | 1024国产基地永久免费 | 国产成人精品日本亚洲网站 | a免费网站| 华人永久免费视频 | 清朝荒淫牲艳史在线播放 | 玖玖福利 | 极品色天使在线婷婷天堂亚洲 | www性| 一区二区三 | 天天干天天摸 | 国产精品资源网站在线观看 | ssswww日本免费网站片 | 88av在线视频 | 天天夜夜狠狠一区二区三区 | 四虎成人影院网址 | 中文字幕亚洲一区二区va在线 | 久久久久国产一级毛片高清版 |