go-study

package (包)

  • 一個目錄下面所有的.go文件的包名必須相同. 包名一般和目錄名相同(是約定, 不是強制), 包名都小寫
  • main包是一個特殊的包名, 在main包中, 必須包含func main()函數
  • 導入包(import)的時候, 使用的是包所在目錄的路徑, 路徑中不用包含包的名字, 在使用包的時候,直接用包名(如 fmt.Println)

可見性規則

當標識符(包括常量、變量、類型、函數名、結構字段等等)以一個大寫字母開頭,如:Group1,那么使用這種形式的標識符的對象就可以被外部包的代碼所使用(客戶端程序需要先導入這個包),這被稱為導出(像面向對象語言中的 public);標識符如果以小寫字母開頭,則對包外是不可見的,但是他們在整個包的內部是可見并且可用的(像面向對象語言中的 private )。

聲明語句

Go語言主要有四種類型的聲明語句:var、const、type和func,分別對應變量、常量、類型和函數實體對象的聲明

函數

main 和 init 函數既沒有參數,也沒有返回類型

占位符??https://studygolang.com/articles/2644

  • %t? :?布爾類型
  • %p?:?指針,?表示為十六進制,并加上前導的0x
  • %s?:?字符串
  • %c?:?字符
  • %b ,?%o ,?%d?:?二進制 ,?八進制 ,?十進制
  • %x ,?%X?:?十六進制小寫 ,?十六進制大寫
  • %T?:?變量類型
  • %v?:?根據數據類型輸出對應格式的值
  • %%?:?百分號
  • %q?:?用引號包含字符串
  • %5s , %-5s :?在格式化數字時,可以在動詞的“%”后面使用一個數字來控制結果圖形的寬度和精度。默認為右對齊, 在數字前面加上"-"可以左對齊
  • %06d :?使用0而不是空格填充, 對于數值類型會把填充的0放在正負號后面
  • %3.3f : 浮點數的寬度和精度

內置函數

  • len : 返回某個類型的長度或數量
  • cap
  • new
  • make
  • new 和 make的區別? https://studygolang.com/articles/1890

數組

數組的長度和類型一起構成了數組的類型, 比如 var array?

實現接口 https://www.jianshu.com/p/d87c69ac6ce7

當涉及到我們該怎么讓我們的類型實現接口時,Go 語言是特別的一個。Go 語言不需要我們顯式的實現類型的接口。如果一個接口里的所有方法都被我們的類型實現了,那么我們就說該類型實現了該接口。

數據類型

  • 布爾類型不能接受其他類型的賦值,不支持自動或強制的類型轉換
  • int和int32在Go語言里被認為是兩種不同的類型

可賦值(這里不能叫類型轉換, 用可賦值表達更準確些)

A value x is assignable to a variable of type T ("x is assignable to T") in any of these cases:
在一下這些情況值x可以賦值給類型為T的變量(x可以賦值給T)

1. x's type is identical to T.
1. x的類型和T的類型相同
2. x's type V and T have identical underlying types and at least one of V or T is not a named type.
2.?x和T具有相同的底層類型, 并且x和T至少有一個是非命名類型
3. T is an interface type and x implements T.
3. T是接口類型,x實現了T
4. x is a bidirectional channel value, T is a channel type, x's type V and T have identical element types, and at least one of V or T is not a named type.
4. x是雙向的chan類型的值, T是chan類型, x和T具有相同的元素類型, 并且x和T至少有一個是非命名類型
5. x is the predeclared identifier nil and T is a pointer, function, slice, map, channel, or interface type.
5. x的值為nil, 并且T是指針、函數、切片、映射、通道或接口類型
6. x is an untyped constant representable by a value of type T.
6. x是一個沒有指定類型的常量, 可以賦值給類型T(這里要遵循第一條原則, 但數字類型除外)

?

整型數據類型及取值范圍

類型字節范圍
int8?1?-128 ~ 127
uint8?1?0 ~ 255
int16?2?-32 768 ~ 32 767
uint16?2?0 ~ 65 535
int32?4?-2 147 483 648 ~ 2 147 483 647
uint32?4?0 ~ 4 294 967 295
int64?8?-9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807
uint64?8?0 ~ 18 446 744 073 709 551 615
int平臺相關??平臺相關
uint平臺相關?平臺相關?
uintptr?同指針在32位平臺下為4字節,64位平臺下為8字節

?

goroutine/channel

  • goroutine是Go語言中的輕量級線程實現,由Go運行時(runtime)管理
  • 函數調用前加上go關鍵字,這次調用就會在一個新的goroutine中并發執行。當被調用的函數返回時,這個goroutine也自動結束了。需要注意的是,如果這個函數有返回值,那么這個返回值會被丟棄。
  • 在沒有使用channel時,? Go程序從初始化main package并執行main()函數開始,當main()函數返回時,程序退出,且程序并不等待其他goroutine(非主goroutine)結束。
  • 在向channel中寫入數據前, 對channel的讀操作是阻塞的, 讀channel的位置就是同步goroutine的位置

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/453030.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/453030.shtml
英文地址,請注明出處:http://en.pswp.cn/news/453030.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是系統安全狀態

指系統能按某種順序如(P1,P2,...,Pn),來為每個進程分配所需要的資源,直至最大需求,使每個進程都可以順序完成。若系統不存在這樣一個安全序列,則稱系統處于不安全狀態。

SQL零基礎學習筆記(一)

真的不知道我寫了這么多不同的的學習筆記又沒用。。開始SQL零基礎學習筆記 百度百科:SQL(Structured Query Language)結構化查詢語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統。同時也是數…

WPF 列表虛擬化時的滾動方式

ListBox的滾動方式 分為像素滾動和列表項滾動 通過ListBox的附加屬性ScrollViewer.CanContentScroll來設置。因此ListBox的默認模板中&#xff0c;含有ScrollViewer&#xff0c;ScrollViewer下存放列表內容 <ScrollViewer FocusVisualStyle"{x:Null}"><Item…

python爬蟲文獻綜述_基于Python下的爬蟲綜述及應用

98 Internet Application 互聯網 應用 引言&#xff1a;如今&#xff0c;大數據已經進入我們的各個領域&#xff0c;我們的工作及應用越來越需要獲取大量的數據。我們可以想象在一張蜘蛛網上沿著我們所需的方向爬取獵物(數據)的感覺。實際上爬蟲就是通過人為的模擬瀏覽器行為&…

HelloWorld新手常見問題

1.顯示錯誤&#xff1a; HelloWorld.java:1: 錯誤: 寫入HelloWorld時出錯: C:\HelloWorld.class public class HelloWorld { ^ 1 個錯誤 解決方法&#xff1a; 將文件轉移至D盤&#xff0c;然后編譯即可。不要放在C盤&#xff01; 2.顯示錯誤&#xff1a; 錯誤: 找不…

淺談HTTPS以及Fiddler抓取HTTPS協議

原文 淺談HTTPS以及Fiddler抓取HTTPS協議 最近想嘗試基于Fiddler的錄制功能做一些接口的獲取和處理工作&#xff0c;碰到的一個問題就是簡單連接Fiddler只能抓取HTTP協議&#xff0c;關鍵的登錄請求等HTTPS協議都沒有捕捉到&#xff0c;所以想讓Fiddler能夠同時抓取到HTTPS和HT…

關于.c和.h 和定義變量的問題

最初調試的時候是因為有個錯誤在wavplay.h文件中 于是我跳到了recorderl.h中:從圖中看到引用了main.h 出現這個問題的具體原因還是不太清楚: 不過我任務是因為: wavplay.h中定義了 __WaveHeader 變量 在main.h文件中引用了wavplay.h 而在wavplay.h中試圖引用main.h里的 __Wa…

halcon中面到面的距離_halcon學習筆記——(8)由標定板得到測量平面位姿-阿里云開發者社區...

如圖&#xff1a;由標定板位姿獲取測量板位姿1.pose_to_hom_mat3d( : : Pose : HomMat3D)把三維位姿轉化為齊次變換矩陣2.hom_mat3d_translate_local( : : HomMat3D, Tx, Ty, Tz : HomMat3DTranslate)相對于新坐標系的平移變換/ 1 0 0 \ / Tx \HomMat3DTranslate HomMat3D *…

進程同步與互斥的區別

并發進程的執行會產生相互制約的關系&#xff1a;一種是進程之間競爭使用臨界資源&#xff0c;只能讓他們逐個使用&#xff0c;這種現象稱為互斥&#xff0c;是一種競爭關系。另一種是進程之間協同完成任務&#xff0c;在關鍵點上等待另一進程發來的消息&#xff0c;以便協同一…

《軟件調試分析技術》學習筆記

《軟件調試分析技術》學習筆記&#xff08;一&#xff09; 今天開始寫寫一些心得體驗。 《軟件調試分析技術》是好友Monster的處女作品。作為一直以的好伙伴&#xff0c;他是我看著長大的&#xff0c;(*^__^*) 嘻嘻……之所以有今天這樣的成績&#xff0c;是與他的努力和天賦…

new Date()時間

var myDate new Date(); myDate.toLocaleDateString()&#xff1b;可以獲取當前日期myDate.toLocaleTimeString(); 可以獲取當前時間擴展&#xff1a;myDate.getYear(); //獲取當前年份(2位)myDate.getFullYear(); //獲取完整的年份(4位,1970-????)myDate.getMonth(); //獲…

什么是對等網絡

對等網也稱工作組。在對等網絡中&#xff0c;計算機的數量通常不會超過10臺。所以對等網絡相對比較簡單。在對等網絡中&#xff0c;對等網上各臺計算機的有相同的功能&#xff0c;無主從之分&#xff0c;網上任一節臺計算機既可以作為網絡服務器&#xff0c;其資源為其它計算機…

python初中必背語法_一些python語法的合集

貼幾道自己做過的py題防止忘了&#xff0c;好像包含的語法還挺多的洛谷1018nn,mminput().split( )oint(input())nint(nn);mint(mm)a[[]];c[[]]for i in range (1,43):a.append([]);c.append([])for i in range (1,43):for j in range (1,43):a[i].append(0),c[i].append(0)b[]f…

微信 {errcode:48001,errmsg:api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]}

{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"} 聲明&#xff1a;是已認證的服務號 這個問題已解決&#xff01;&#xff01; 前置說明 網頁授權獲取用戶基本信息&#xff1a;兩種 scope 域 https://open.w…

解決ubuntu首次安裝Mysql之后,首次登錄出現ERROR 1698 (28000): Access denied for user 'root'@'localhost'的方法

解決步驟&#xff1a; 1.打開終端&#xff0c;輸入sudo vi /etc/mysql/debian.cnf 打開/etc/mysql/debian.cnf文件&#xff0c;顯示如下&#xff1a; 2.mysql -udebian-sys-maint -p 打開mysql 輸入密碼為上圖中password字段 3.修改root密碼 ALTER USER rootlocalhost IDEN…

六十萬的成長_我的EA策略分析和實現

曾經看過一個故事&#xff1a;在流水線上需要檢測面包盒子是不是空的&#xff0c;科技人員使用各種紅外線等等高科技&#xff0c;達到了目的&#xff1b;有一個工人用一臺風扇就解決了這個問題......其實解決問題可以很簡單&#xff0c;只要能實現目標&#xff0c;過程越簡單越…

流量控制和擁塞控制

流量控制是用于控制調制解調器與計算機之間的數據流&#xff0c;具有防止因為計算機和調制解調器之間通信處理速度的不匹配而引起的數據丟失。通常有硬件流量控制&#xff08;RTS/CTS&#xff09;和軟件流量&#xff08;XON/XOFF&#xff09;控制。 擁塞現象是指到達通…

內聚的極限: 軟件開發的不確定性原理

高內聚是有極限的. 當代碼在一個維度上高度內聚的時候, 在其它維度上是發散的. -- 代碼內聚設計的不確定性原理 大家都知道量子力學的不確定性原理: 在微觀世界里, 有幾對物理量不能同時精確的測定, 包括速度與位置, 以及能量與時間. 比如當我們精確的測定一個粒子的速度使其誤…

python獲取window共享目錄列表_利用Python獲取DICOM RTstructure勾畫列表

在《利用Python打開DICOM CT文件》一文中&#xff0c;我們利用pydicom.dcmread()讀取了CT圖像。本文中我們將修改load_scan()函數來讀取RTstructure文件并獲取勾畫列表1. 打開Jupyter notebook&#xff0c;導入需要的科學包import numpy as npimport mathimport pydicomimport …