当前位置: 首页 > 科技观察

Golang语言初学者需要注意的那些坑

时间:2023-03-14 18:34:24 科技观察

作为Golang初学者,Golang虽然是一门非常优秀的语言,但是与Java等面向对象语言在语法结构上还是有一些区别的。你可能会遇到各种莫名其妙的问题和坑。那么本章我们就来学习Go语言基础语法需要注意的点。GOLanguageBasicGrammarGo的基本语法,这里就不细说了,学习Go的详细语法可以看这篇文章:http://www.runoob.com/go/go-basic-syntax.html最好对比上面的例子,一个一个的敲掉,效果是最好的。下面是一个Go程序的基本结构,包括(包声明、导入包、函数等)主要的。import"fmt"//导入需要使用的包(函数,或其他元素)funcmain(){//程序的入口函数。main函数必须包含在每个可执行程序中,一般来说,它是启动后最先执行的函数。fmt.Println("Hello,World!")}GO语言attention的陷阱无论学什么,一开始都会遇到各种陷阱。下面总结一下学习go语言过程中遇到的各种坑。1、写C#的人都会把“{”放在单独一行,但是在go中这是错误的。“{”必须和方法体在同一行。我第一次写go就犯了这个错误,也不知道错在哪里。funcmain(){fmt.Println("Hello,World!")}2.if...else语句中的else必须和if中的'}'在同一行,否则编译错误variest=30ifa<20{fmt.Print("a<20")}else{fmt.Print("a>=20")}3.包名的定义。您必须在源文件的第一个非注释行中声明包名称,例如:packagemain。packagemain代表一个独立可执行的程序,每个Go应用程序都包含一个名为main的包。packagemain4.在Go程序中,一行表示一条语句的结束。每个语句不需要以分号结尾;和C家族的其他语言一样,因为这些工作会由Go编译器自动完成。如果你打算在同一行写多个语句,你必须使用;人为地区分它们,但我们在实际开发中不鼓励这种做法。fmt.Println("Hello,World!")fmt.Println("www.fpeach.com")5.main()函数必须包含在每个可执行程序中,一般来说,它是第一个执行的函数。但是每个包中只能有一个main()函数,否则会报错mainredeclaredinthisblockpreviousdeclarationat..。packagemainimport"fmt"funcmain(){/*Thisismyfirstsimpleprogram*/fmt.Println("Hello,World!")}6当函数、结构体等标识符以大写字母开头,如:GetInfo,那么使用这种形式的标识符的对象就可以被外部包的代码使用,称为export(类似于面向对象语言中的public);如果标识符以小写字母开头,则它在包外部是不可见的,但它们在整个包内是可见的和可用的(就像面向对象语言中的protected一样)。//公共函数,外部包内代码可以使用funcTest(){...}//私有函数,包内可见,functest2(){...}7.标识符用于命名变量类型和其他程序实体。标识符实际上是一个或多个字母(A~Z和a~z)、数字(0~9)和下划线_的序列,但第一个字符必须是字母或下划线而不是数字。以下是无效的标识符:1ab(以数字开头)case(Go语言中的关键字)a+b(operatorisnotallowed)8.错误nonewvariablesonleftsideof:=,meaning,"leftsideofThereis没有新变量!”funcmain(){varbint=20b:=30fmt.Print(b)}解决方案是:对于形式x,y:=....,只需命名其中一个变量,就像新变量一样。9.不能使用++自增或--自减运算符初始化变量和给变量赋值packagemainimport"fmt"funcmain(){varaint=10varbint=a++varcint=20c=a++fmt.Print(a,b,c)}最后总结一下我们在学习golang时可能遇到的坑。后面会详细介绍golang的语法。