欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

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

Android編程精選 ? 來源:CSDN ? 2023-07-03 10:22 ? 次閱讀

一、萬能之Hello World 開啟go的大門

直接上代碼

packagemain//表明包

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

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

輸出結(jié)果:

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

是不是感覺還可以。

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

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

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

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

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

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

三、基礎(chǔ)語法

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

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

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

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

關(guān)鍵字

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

預(yù)定義標識符

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

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

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

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

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

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

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

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

這個給人感覺就是對使用著感覺 有了更高的要求 像java就是int Integer BigInteger這幾種包裝好的用就行了

當然這樣要求的更細致 感覺編譯的時候 就越容易控制 如果方方面面都這么細致的話 運行速度上就可以提高不少的

五、聲明變量

var identifier type 例:var a int;

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

指定變量類型,如果沒有初始化,則變量默認為零值
數(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 (這點就有點像js了)

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

多變量聲明

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

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

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


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

六、常量

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

定義了之后就不能改了 如果代碼里面改了的話 會報 cannot assign to LENGTH 錯誤

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

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

iota,特殊常量,可以認為是一個可以被編譯器修改的常量。

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

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

枚舉自增計數(shù)器 感覺是這么個意思

運算符

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

&這個就是只有兩個1的時候才是1其余都是0

|這個是只有兩個0的時候才是0其余都是1和與剛好相反

^這個簡單粗暴兩個相同的數(shù)字是0不同的時候是1

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

這個<<=后面的幾個都還有點驚艷到我了 厲害厲害

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

這兩個優(yōu)點沒太看懂 敲個代碼試一下

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)容 不加輸出的就是地址 這個指針的概念 java里是沒有的

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

七、條件語句

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

這個select語句真的是看的我欲生欲死

以下描述了 select 語句的語法:

每個 case 都必須是一個通信

所有 channel 表達式都會被求值

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

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

如果有多個 case 都可以運行,Select 會隨機公平地選出一個執(zhí)行。其他不會執(zhí)行。

否則:

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

如果沒有 default 子句,select 將阻塞,直到某個通信可以運行;Go 不會重新對 channel 或值進行求值。

來來來 兩段代碼說明一下

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

這兩個例子分別說明了下面兩點

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

如果有多個 case 都可以運行,Select 會隨機公平地選出一個執(zhí)行。其他不會執(zhí)行。

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




審核編輯:劉清

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

    關(guān)注

    21

    文章

    2657

    瀏覽量

    100196
  • JAVA語言
    +關(guān)注

    關(guān)注

    0

    文章

    138

    瀏覽量

    20192
  • go語言
    +關(guān)注

    關(guān)注

    1

    文章

    158

    瀏覽量

    9094

原文標題:Java 轉(zhuǎn) Go 之初體驗 !

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

收藏 人收藏

    評論

    相關(guān)推薦

    STM32H5 DA初體驗

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

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

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

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

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

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

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

    【NUCLEO-F412ZG試用體驗】開箱測評 = 愛之初體驗

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

    鴻蒙系統(tǒng)-愛之初體驗

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

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

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

    請問前端轉(zhuǎn)鴻蒙怎么過渡,需要學(xué)習Java嗎?

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

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

    正文日志的轉(zhuǎn)儲和壓縮是非常關(guān)鍵的,它不僅可以減少硬盤空間占用,主要還可以在發(fā)生故障時根據(jù)日志定位出故障原因。下面來看看golang和java的文件轉(zhuǎn)儲實現(xiàn)。go語言:用到了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程序是如何運行的

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

    go語言枚舉類型怎么用

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

    "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地位

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

    STM32H5 DA 之初體驗(帶 TrustZone)

    電子發(fā)燒友網(wǎng)站提供《STM32H5 DA 之初體驗(帶 TrustZone).pdf》資料免費下載
    發(fā)表于 02-19 14:19 ?0次下載
    STM32H5 DA <b class='flag-5'>之初體驗</b>(帶 TrustZone)