GO 從零開始的語法學習二

for循環

  • if條件里不需要括號

  • err != nil 判斷是否為空

func main(){const filename = "abc.txt"contents , err := ioutil.ReadFile(filename); err != nil{fmt.Println(err)} else{fmt.Printf("%s\n",contents)}
}
復制代碼
  • if的條件里可以進行賦值
  • if的條件里賦值的變量作用域就在這個if語句里
if contents,err := ioutil.ReadFile(filename); err == nil{fmt.Println(string(contents))
}else{fmt.Println("cannit print file contents:",err)
}
復制代碼

switch

  • switch會自動break,除非使用fallthrough
  • switch 后可以沒有表達式
func grade(score int) string{g := ""switch {case score < 0 || score >100panic(fmt.Sprintf("Wrong score:%d",score))case score < 60:g = "F"case score < 80:g = "C"case score < 90:g = "B"case score <= 100:g = "A"}return g;
}
復制代碼

循環

  • for的條件里不需要括號
  • for的條件里可以省略初始條件,結束條件,遞增表達式
  • 沒有while
func conbertToBin(n int) string{
result := ""
for ; n > 0; n /= 2{
lsb := n % 2
result = strconv.Itoa(lsb) + result
}return result
}func main(){fmt.Println(//101convertToBin(5),//1101convertToBin(13),convertToBin(5555547),convertToBin(0),)
}
復制代碼
func printFile (filename string){file, err := os.Open(filename)if err != nil{}
}scanner := bufio.NewScanner(file)for scanner.Scan(){fmt.Println(scanner.Text())}
}復制代碼
  • for可以什么條件也不加,此時的for循環為死循環
func forever(){for{fmt.Println("abc")}
}
復制代碼

函數

  • 函數可返回多個值
 func div(a,b int)(int,int){return a/b,a % b
}
復制代碼
  • 函數返回多個值時可以起名字
  • 僅用于非常簡單的函數
  • 對于調用者而言沒有區別
func div(a,b int)(q,r int){q = a / br = a % breturn
}
復制代碼
func apply(op func(int ,int) int,a,b int) int {p := reflect.VlueOf(op).Pointer(p).Name()fmt.Printf("Calling function %s with args " +"(%d,%d)",opName,a,b)return op(a,b)
}
復制代碼
  • 可變參數列表
func sum(numbers ...int) int{sum := 0for i := range values{sum += values[i]}return sum
}
復制代碼

#函數語法要點回顧

  • 返回值類型寫在最后面
  • 可返回多個值
  • 函數作為參數
  • 沒有默認參數,可選參數

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

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

相關文章

7個有用的Vue開發技巧

1 狀態共享 隨著組件的細化&#xff0c;就會遇到多組件狀態共享的情況&#xff0c;Vuex當然可以解決這類問題&#xff0c;不過就像Vuex官方文檔所說的&#xff0c;如果應用不夠大&#xff0c;為避免代碼繁瑣冗余&#xff0c;最好不要使用它&#xff0c;今天我們介紹的是vue.js …

Kewail-郵件短信接口的基礎教程

短信接口接入流程開始接入手機短信接口接入操作流程&#xff1a;申請短信簽名 → 申請短信模板 → 生成AccessKey → 下載DEMO/攢寫接口調用文檔 → 免費測試發送 → 購買發信量正式使用。一、申請短信簽名接入API接口&#xff0c;通過1069通道發送驗證碼等短信&#xff0c;必須…

傳百度無人車計劃分拆,百度回復:不實信息,目前未有分拆計劃

據《財經》報道&#xff0c;百度無人車項目正在籌備分拆(spin off)當中&#xff0c;且正在尋找外部投資機構融資。一位接近百度無人車項目人士對《財經》表明&#xff0c;分拆就是時間問題。對于無人車項目分拆一事&#xff0c;百度對 36 氪表示&#xff0c;媒體報道不實。目前…

又見回文

又見回文 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description “回文串”是一個正讀和反讀都一樣的字符串&#xff0c;比如“level”或者“noon”等等就是回文串。現在呢&#xff0c;就是讓你判斷輸入的字符串是否是回文串。 Inpu…

Fighting_小銀考呀考不過四級【遞推】

Fighting_小銀考呀考不過四級 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 四級考試已經過去好幾個星期了&#xff0c;但是小銀還是對自己的英語水平擔心不已。 小銀打算好好學習英語&#xff0c;爭取下次四級考試和小學弟小…

從xml中返回的對象,和new 返回的對象時不同的。

public BigDecimal getTax() {return tax null ? BigDecimal.ZERO : tax;} 這是自定義的一個類 對null 做出了處理。 但是如果是直接從xml 查詢返回的該對象&#xff0c; tax() 字段還是會產生null <resultMap id"twoToNine" type"" ><result …

三國佚事——巴蜀之危【遞推】

三國佚事——巴蜀之危 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 話說天下大勢&#xff0c;分久必合&#xff0c;合久必分。。。卻道那魏蜀吳三國鼎力之時&#xff0c;多少英雄豪杰以熱血譜寫那千古之絕唱。古人誠不我欺…

HTTP Authentication(HTTP認證)(轉)

HTTP協議規范中有兩種認證方式&#xff0c;一種是Basic認證&#xff0c;另外一種是Digest認證&#xff0c;這兩種方式都屬于無狀態認證方式&#xff0c;所謂無狀態即服務端都不會在會話中記錄相關信息&#xff0c;客戶端每次訪問都需要將用戶名和密碼放置報文一同發送給服務端&…

們--加強斐波那契【遞推】

們--加強斐波那契 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 對于斐波那契數列想必各位已經見過了。這里給出一個加強版。 F[i] i (i < 3); F[i] F[i-1] F[i-2] F[i-3](i > 4); Input 多組輸入。每組輸入一…

inux CentOS 7 修改內核啟動默認順序

2019獨角獸企業重金招聘Python工程師標準>>> inux CentOS 7 修改內核啟動默認順序 2018年12月07日 09:53:32 XueShengke 閱讀數&#xff1a;781 轉載于&#xff1a;21運維 Linux CentOS 7.X 如何修改內核啟動默認順序 我們知道&#xff0c;centos 6.x是通過/etc/gr…

快速掌握ajax!

ajax是什么&#xff1f;ajax——asynchronous JavaScript and xml&#xff1a;異步的js和xml它能使用js訪問服務器&#xff0c;而且是異步訪問服務器給客戶端的響應一般是整個頁面&#xff0c;一個html完整頁面&#xff01;但在ajax中因為是局部刷新&#xff0c;那么服務器就不…

鎖底層之內存屏障與原語指令

Java內存模型1&#xff0e;工作內存和主內存Java內存模型規定所有的變量都存儲在主內存中&#xff08;JVM內存的一部分&#xff09;&#xff0c;每個線程有自己獨立的工作內存&#xff0c;它保存了被該線程使用的變量的主內存復制。線程對這些變量的操作都在自己的工作內存中進…

微信點擊鏈接,用默認瀏覽器中打開指定網址鏈接!

2019獨角獸企業重金招聘Python工程師標準>>> 最近有客戶咨詢&#xff0c;自己的鏈接在微信種推廣&#xff0c;經常會被無緣無故封殺&#xff0c;有沒有一種功能&#xff0c;用戶在微信中點擊我們推廣的鏈接&#xff0c;可以自動強制跳轉到手機默認瀏覽器中打開指定的…

elasticsearch存儲空間不足導致索引只讀,不能創建

問題描述 1.添加數據時&#xff0c;報錯&#xff0c;原因是&#xff0c;一旦在存儲超過95&#xff05;的磁盤中的節點上分配了一個或多個分片的任何索引&#xff0c; 該索引將被強制進入只讀模式 ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow del…

java版spring cloud+spring boot 社交電子商務平臺:服務消費(基礎)

使用LoadBalancerClientSpring cloud b2b2c電子商務社交平臺源碼請加企鵝求求&#xff1a;一零三八七七四六二六。在Spring Cloud Commons中提供了大量的與服務治理相關的抽象接口&#xff0c;包括DiscoveryClient、這里我們即將介紹的LoadBalancerClient等。對于這些接口的定義…

Monthly Expense【二分】

B - Monthly Expense POJ - 3273 Farmer John is an astounding accounting wizard and has realized he might run out of money to run the farm. He has already calculated and recorded the exact amount of money (1 ≤ moneyi ≤ 10,000) that he will need to spend …

關于HTTP協議,一篇就夠了

原文地址&#xff1a;https://www.cnblogs.com/ranyonsue/p/5984001.html HTTP簡介 HTTP協議是Hyper Text Transfer Protocol&#xff08;超文本傳輸協議&#xff09;的縮寫,是用于從萬維網&#xff08;WWW:World Wide Web &#xff09;服務器傳輸超文本到本地瀏覽器的傳送協議…

Oracle關聯查詢-數據類型不一致問題 ORA-01722: 無效數字

一、存在表A和表B&#xff0c;都包含字段user_no&#xff0c;但數據類型不一致&#xff0c;如下&#xff1a; create table A ( user_id varchar2(20), user_no number(12,0), xxx ); create table B ( user_name varchar2(60), user_no varchar2(20), xxx ); 二、現有某項業務…

1096: 字符逆序

1096: 字符逆序 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 2017 Solved: 1059 [Submit][Status][Web Board] Description 將一個字符串str的內容顛倒過來&#xff0c;并輸出。str的長度不超過100個字符。 Input 輸入包括一行。 第一行輸入的字符串。 Output 輸出…

Ajax_Apache訪問資源文件的權限配置、資源存放路徑配置、配置虛擬主機、動態網站靜態網站區別...

1、配置資源的訪問權限 修改配置文件&#xff1a;httpd.conf 文件 改完之后要重啟 2、切換資源默認存放目錄www 修改配置文件httpd.conf 文件中的存放目錄 3、Apache是否能夠同時支持多個站點 Apache能否支持通過不同的域名訪問不同的站點 可以 做法&#xff1a;配置虛擬主機…