GO ---- 鍑芥暟 鍖?鍒ゆ柇 寰幆
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GO ---- 鍑芥暟 鍖?鍒ゆ柇 寰幆相关的知识,希望对你有一定的参考价值。
鏍囩锛?a href='http://www.mamicode.com/so/1/pac' title='pac'>pac ref fun import 蹇呴』 pre 鎸囧畾 int
琛ュ厖:go鍙橀噺瀹氫箟鎺ㄨ崘浣跨敤椹煎嘲,鏂囦欢鍚嶅懡鍚嶆帹鑽愪娇鐢ㄤ笅鍒掔嚎
鍑芥暟
瀹氫箟鍑芥暟鍩烘湰鏍煎紡:
// func鍏抽敭瀛?+ 鍑芥暟鍚?+ (鍙傛暟1,鍙傛暟2,鍙傛暟3) + {鍑芥暟浣撳唴瀹箎
package main
import "fmt"
// 杩欎釜浣嶇疆涓嶈兘鍐欓€昏緫浠g爜,鍙兘鍙橀噺鍜屽父閲忕殑瀹氫箟
func main(){
// 璋冪敤鍑芥暟
myFunc()
}
// 鑷畾涔夊嚱鏁?myFunc
func myFunc(){
fmt.Priltln("鍑芥暟浣撴墽琛屽唴瀹?quot;)
}
func test() {
fmt.Println("鎴戞槸鍑芥暟test")
}
2 甯﹀弬鏁扮殑鍑芥暟
// 鍙傛暟鍙互鎸囧畾绫诲瀷
func test(a int,b int) {
fmt.Println(a+b)
}
// 甯﹀弬鏁扮殑鍑芥暟,涓や釜鍙傛暟绫诲瀷鐩稿悓锛屽彲浠ョ渷鐣?func test(a ,b int,c string) {
fmt.Println(a+b) //a,b鏄痠nt锛?c鏄痵tring
}
// 鍦ㄥ弬鏁板悗鍔犵被鍨嬪嵆鍙?func test(a ,b int) int {
return a+b
}
// 澶氳繑鍥炲€硷紙python涓彲浠?杩斿洖鐨勬槸鍏冪锛?鎴戜滑杩欓噷杩斿洖涓や釜int绫诲瀷
func test(a ,b int) (int,int) {
return a+b,b*a
}
// 鍙彉闀匡紝鎺ユ敹浠绘剰闀垮害鐨勫弬鏁? (鍙傛暟1 + ... + 绫诲瀷)
func test(a ...int){
fmt.Println(a)
}
// go涓彧鏈変綅缃弬鏁帮紝娌℃湁鍏抽敭瀛楀弬鏁颁竴璇?娌℃湁榛樿鍙傛暟
5 鍖垮悕鍑芥暟
// 鍙傛暟鍙互鎸囧畾绫诲瀷
func test(a int,b int) {
fmt.Println(a+b)
}
// 甯﹀弬鏁扮殑鍑芥暟,涓や釜鍙傛暟绫诲瀷鐩稿悓锛屽彲浠ョ渷鐣?func test(a ,b int,c string) {
fmt.Println(a+b) //a,b鏄痠nt锛?c鏄痵tring
}
// 澶氳繑鍥炲€硷紙python涓彲浠?杩斿洖鐨勬槸鍏冪锛?鎴戜滑杩欓噷杩斿洖涓や釜int绫诲瀷
func test(a ,b int) (int,int) {
return a+b,b*a
}
// 鍙彉闀匡紝鎺ユ敹浠绘剰闀垮害鐨勫弬鏁? (鍙傛暟1 + ... + 绫诲瀷)
func test(a ...int){
fmt.Println(a)
}
// go涓彧鏈変綅缃弬鏁帮紝娌℃湁鍏抽敭瀛楀弬鏁颁竴璇?娌℃湁榛樿鍙傛暟
5 鍖垮悕鍑芥暟
鍖垮悕鍑芥暟:锛堟病鏈夊悕瀛楃殑鍑芥暟锛?涓€瀹氳瀹氫箟鍦ㄥ嚱鏁板唴閮?/p>
func test() {
//鍖垮悕鍑芥暟鐩存帴鍔犳嫭鍙? func (){
fmt.Println("鎴戞槸鍖垮悕鍑芥暟")
}() // 娉ㄦ剰杩欓噷鍔犱簡鎷彿鎵ц浜?}
func test() {
//璧嬪€肩粰涓€涓彉閲? var a func()
a =func (){
fmt.Println("鎴戞槸鍖垮悕鍑芥暟")
}
a() // 鎵ц
//a鏄釜浠€涔堢被鍨? fmt.Printf("%T",a) // func()
}
6 鍑芥暟杩欎釜绫诲瀷,瀹冪殑鍙傛暟锛岃繑鍥炲€硷紝閮芥槸绫诲瀷鐨勪竴閮ㄥ垎
var a func()
var b func(a,b int)
var c func(a,b int)int
var d func(a,b int)(int,string)
// 浠ヤ笂鐨勭被鍨嬮兘涓嶇浉鍚?
7 闂寘
瀹氫箟: 瀹氫箟鍦ㄥ嚱鏁板唴閮?, 瀵瑰閮ㄤ綔鐢ㄥ煙鏈夊紩鐢?/p>
# python浠g爜
def index():
def func():
print("hello")
return func
a = index()
a()
// go浠g爜闂寘
func test() func() {
// 鍙橀噺鎺ユ敹鍑芥暟
a := func() {
fmt.Println("鎴戞槸鍐呭眰鍑芥暟")
}
// 杩斿洖a 浣嗘槸杩斿洖鍊奸渶瑕佸畾涔夌被鍨?鎴戜滑鍙互鎵撳嵃涓媋鐨勭被鍨? fmt.Printf("%T",a) // 鎴戜滑鍙戠幇a鐨勭被鍨嬫槸func()
// 閭d箞鎴戜滑灏辫繑鍥炵被鍨嬩负func()
return a
}
// 濡傛灉鍐呭眰鍑芥暟鏈夊弬鏁?func test2() func(x,y int) string {
//鍙槸涓€涓唴灞傚嚱鏁? a:= func(x,y int) string {
fmt.Printf("鎴戞槸鍐呭眰鍑芥暟")
return "鎴戞槸鍐呭眰鍑芥暟鐨勮繑鍥炲€?quot;
}
return a
}
// 杩欓噷鐨勮繑鍥炲€?浠栨€庝箞瀹氫箟鐨勫氨闇€瑕佹€庝箞杩斿洖 鍖呮嫭鏀惧洖鍊?func(x,y int) string
//闂寘鍑芥暟锛岄棴鍖呭嚱鏁帮紝灏辨槸澶氫簡涓€绉嶅嚱鏁颁紶鍙傜殑鏂瑰紡
8 缁欏嚱鏁扮被鍨嬮噸鍛藉悕
// 鍥犱负姣忎竴娆℃斁鍥為兘鐗瑰埆澶氱壒鍒夯鐑︽墍浠ュ彲浠ョ粰鍑芥暟鐨勭被鍨嬮噸鍛藉悕
type Myfunc func (z int) int
//缁?鍑芥暟绫诲瀷 閲嶅懡鍚?type Myfunc func(z int)int
func test(x,y int) Myfunc {
//鍙槸涓€涓唴灞傚嚱鏁? a:= func(z int)int {
fmt.Println(x+y+z)
return x+y+z
}
return a
}
//杩斿洖鍊奸粯璁ゅ€?func test()(a int,b string) {
// a鍜宐涓嶉渶瑕佸畾涔夛紝鐩存帴浣跨敤
// return鐨勬椂鍊欙紝涓嶉渶瑕佹寚瀹氫簡
a=0
b="ok"
return
}
func test() {
//杩欐牱鍐欙紝鏈夋病鏈夎繑鍥炲€? return
fmt.Printf("xxx")
}
10 琛ュ厖
鍖垮悕绌烘帴鍙o紙鐩墠涓嶇敤鐪嬶級
//琛ュ厖Println鍑芥暟鍙互浼犱换鎰忕殑鏁版嵁绫诲瀷
fmt.Println(1,"lqz",3.45)
//interface{} 搴旇鏄墍鏈夌被鍨嬬殑榧荤锛宨nt锛宻tring锛宖loat32閮藉睘浜巌nterface{}绫诲瀷
//鎺ュ彛锛屽尶鍚嶇┖鎺ュ彛
package main import "s12_day02/mypacakge" //瀵煎寘鐨勬椂鍊欙紝鏄粠gopath鐨剆rc璺緞涓嬪紑濮嬪 import "fmt" //鍚屼竴涓枃浠跺す涓嬪彧鑳芥湁涓€涓寘锛屼篃灏辨槸package 鍚庨潰 鐨勫悕瀛楅兘瑕佷竴鑷?榛樿灏辫窡鏂囦欢澶瑰悕瀛椾竴鏍峰嵆鍙?//鍚屼竴涓寘涓嬫湁涓や釜鍚嶅瓧鐩稿悓鐨勫嚱鏁版槸涓嶈鐨?//浣跨敤鍖咃紝闇€瑕佸鍏? func main() { mypackage.MyPackageTest() //浠ュぇ鍐欏瓧姣嶅紑澶磋〃绀哄鍑猴紙澶栭儴鍖呭彲浠ヤ娇鐢級锛屽皬鍐欏瓧姣嶅紑澶达紝澶栭儴鍖呬笉鑳戒娇鐢紝鍙兘鍐嶅寘鍐呴儴閫傚簲 mypackage.test() fmt.Println("xxx") }
鎬荤粨锛?/p>
1 鏂板缓涓€涓枃浠跺す锛堝寘锛夛紝鍖呬笅鏂板缓浠绘剰澶氫釜go鏂囦欢锛屼絾鏄寘鍚嶉兘蹇呴』涓€鑷达紙寤鸿灏辩敤鏂囦欢澶瑰悕锛?/p>
2 鍦ㄥ寘鍐呭畾涔夌殑鍑芥暟锛屽ぇ鍐欏瓧姣嶅紑澶达紝琛ㄧず澶栭儴鍖呭彲浠ヤ娇鐢紝灏忓啓瀛楁瘝寮€澶达紝琛ㄧず鍙兘鍐嶅唴閮ㄤ娇鐢?鐩存帴浣跨敤鍗冲彲
3 鍦ㄥ叾浠栧寘涓娇鐢紝瑕佸厛瀵煎叆锛坓oland鏈夎嚜鍔ㄦ彁绀猴級
-import "s12_day02/mypacakge"
-鍖呭悕.鍑芥暟锛堬級
4 鍏湁鍜岀鏈?灏辨槸澶у皬鍐欏尯鍒嗙殑
5 鎵€鏈夌殑鍖呭繀椤诲湪gopath鐨剆rc璺緞涓嬶紝鍚﹀垯鎵句笉鍒?/p>
if-else璇彞
package main
import "fmt"
func main() {
//1 璇硶
if 鏉′欢 {
//绗﹀悎涓婇潰鏉′欢鐨勬墽琛? }
else if 鏉′欢{
//绗﹀悎涓婇潰鏉′欢鐨勬墽琛? }else {
// 涓嶇鍚堜笂闈㈢殑鏉′欢鎵ц杩欎釜
}
}
package main
import "fmt"
func main() {
var a =10
if a<9{
fmt.Println("灏忎簬9")
}else if a==10{
fmt.Println("10")
}else {
fmt.Println("閮戒笉绗﹀悎")
}
}
package main
import "fmt"
func main() {
//浣滅敤鍩熻寖鍥翠笉涓€鏍? if a:=10;a<9{
fmt.Println("灏忎簬9")
}else if a==10{
fmt.Println("10")
}else {
fmt.Println("閮戒笉绗﹀悎")
}
}
寰幆
package main
//寰幆锛歡o涓紝娌℃湁while寰幆锛屽彧鏈変竴涓猣or寰幆锛宖or鍙互鏇夸唬鎺墂hile
func main() {
//1 璇硶,涓夐儴鍒嗛兘鍙互鐪佺暐
/*
for鍏抽敭瀛?鍒濆鍖?鏉′欢;鑷鑷噺{
寰幆浣撶殑鍐呭
}
*/
}
// 绀轰緥 浠? 鎵撳嵃鍒?
for i:=0;i<10;i++{
fmt.Println(i)
}
break continue:浠讳綍璇█閮戒竴鏍?
以上是关于GO ---- 鍑芥暟 鍖?鍒ゆ柇 寰幆的主要内容,如果未能解决你的问题,请参考以下文章
part4-2 娴佺▼鎺у埗浜岋紙寰幆缁撴瀯锛寃hile銆乫or寰幆锛屽垪琛ㄦ帹瀵煎紡銆佺敓鎴愬櫒鎺ㄥ寮忥紝甯哥敤宸ュ叿鍑芥暟锛屾帶鍒跺惊鐜粨鏋勶紝4涓畝鍗曞疄渚嬶級