Go基础 | 青训营笔记

53 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第1天

第一次接触Go,难免会将Go和之前经常使用的编程语言(java)进行对比,以我目前浅薄的知识来看,go区别java有以下几个方面:

  1. java是一种面向对象的编程语言,而go则不是
  2. go中并没有异常处理
  3. 如果一个变量在go中仅仅声明而没有使用就会报错
  4. go语言的标准包相较于java更为轻量,并且没有很多冗余的包
  5. 同java一样能够运行在多个平台上,但是不需要类似jre的这种东西,编译速度快

这是我第一天的学习,go给我的感受。然后除此之外,go的变量的声明也和我之前学习到的大不相同,比如声明一个int类型的变量,go的语句是 a := 64或者var a int = 64并且无论是声明int还是string 使用第二种方式都需要使用关键词var,而对于第一种方式,go可以对任意类型的变量都可以直接采用;其次,对于函数的返回值,go的函数可以拥有多个返回值,但是java的函数必须只能有一个返回值,在函数的参数上,go的参数传递规则和C语言很相像,都是值传递,如果加上指针,就是引用传递。而反观java,基础类型都是值传递,对于类,对象而言就是引用传递;然后,在错误(error)上,go不存在try catch的语句,对于一般会产生erro的操作,如在数组中取一个索引大于数组自身长度的位置nums[nums.length+1]通常会用两个变量承接,即v,e := nums[len(nums)+1],如果发生异常,则e!=nil,这儿的nil就我个人看相当于java中的exception(我基础不咋好,只能这样理解) 以上就是第一天学习go语言后个人得到的感悟,基础不牢,还请多指教