golang處理輸入

來源:互聯網
上載者:User

golang對於輸入的處理,在我看來是非常方便的。今年的秋招筆試,果斷棄c++了。

首先來講一下幾種簡單的輸入處理。

1. fmt.Scan

fmt.Scan互動式接受輸入,通過空格來分詞。調用Scan函數時,要指定接收輸入的變數名和變數數。

直到接收完所有指定的變數數,Scan函數才會返回,斷行符號符也無法提前讓它返回。

fmt.Println("Please enter the firstName and secondName: ")

fmt.Scan(&afirstName, &asecondName)

fmt.Printf("firstName is %s, secondName is %s\n", afirstName, asecondName)

結果如下:

Please enter the firstName and secondName:

zz

rr

firstName is zz, secondName is rr

2. fmt.Scanln

Scanln調用時,也要指定接收輸入的變數名和變數數。

它同Scan的區別,在於 \ n 會讓函數提前返回,將返回時還未接收到值的變數賦為空白。

fmt.Println("Please enter the firstName and secondName: ")

fmt.Scanln(&bfirstName, &bsecondName)

fmt.Printf("firstName is %s, secondName is %s\n", bfirstName, bsecondName)

結果如下:

Please enter the firstName and secondName:

zr

firstName is zr, secondName is

3. fmt.Scanf

用Scanf處理輸入,是比較靈活的一種處理方式。

需要指定輸入的格式,適用於完全瞭解輸入格式的情境,可以直接把不需要的部分過濾掉。

fmt.Println("Please enter the firstName and secondName: ")

fmt.Scanf("//%s\n%s", &cfirstName, &csecondName)

fmt.Printf("firstName is %s, secondName is %s", cfirstName, csecondName)

結果如下:

1)這個情境,在接收輸入時,就把不需要的部分“//” 和 “\n”過濾掉了,接收到是有用的兩個字串zz和rr。

Please enter the firstName and secondName:

//zz

rr

firstName is zz, secondName is rr

2)如果輸入不符合指定的格式,從不符合處開始,其後的變數值都為空白。

Please enter the firstName and secondName:

//zr ui

firstName is zr, secondName is

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.