我是做java开发的,从接触java开始算,已经8年了,为什么会想到学go语言呢?前端时间我一直在学习jvm,java的一些更底层的东西,梳理回顾时,感觉可以通过学习其他开发语言,来提升我对java的理解,站在另一个角度来看java。但是又怕是蜻蜓点水式的学,达不到效果,于是有了接下来的文章,希望能写下去。
   
      go的历史这里就不谈了,算一个很有背景的语言。后面的文章内容,基本都会涉及到go语言和java的比较。
 
      我们开始吧!我们先向以前的编程前辈致敬,来一个hello world。
 
package main

import "fmt"

func main() {
// 单行注释
/*
多行注释
*/ fmt.Println("Hello, World!")
}

  

 
代码分三部分
  • 包声明
  • 导入包
  • 函数
 
包声明:go语言限制程序入口的go文件,必须命名为main,否则报错。

go run: cannot run non-main package

  

 
导入包:后面的输出语句用到了fmt包。但是go语言有个不同的地方是如果后面代码里没有用到前面导入的bao,将会报错。
# command-line-arguments
./hello_world.go:4: imported and not used: "flag"

  

 
函数:我们看到go语言的入口是一个函数,没有类存在。func是go语言定义函数的关键字。函数名是main,入口函数约定了函数名必须叫main,否则报错:
# command-line-arguments
runtime.main: call to external function main.main
runtime.main: main.main: not defined
runtime.main: undefined: main.main

  

注释:代码中我们能看到有单行注释和多行注释的格式。
 
我们看到函数后面跟了一个 大括号({   ),很多人会觉得这只是一些编程习惯。其实go语言语法要求大括号的前半部分必须要接在一个语句后面,不能另起一行,如下:
xxx {
yyyy
}

  

否则,报错:
# command-line-arguments
./hello_world.go:6: syntax error: unexpected semicolon or newline before {

  

 
后面go语言的其他地方,都有这方面的要求。
 
 
我们看看java语言的hello world 。
 
public class Test {

    public static void main(String args[]) {
System.out.println("hello world !");
} }

  

其实java的限制就很少了,我们的包名都可以不设定,他只是对main方法有要求。go里面没有要求mian方法归属一个类。
 
 

最新文章

  1. Hibernate多对多双向关联的配置
  2. C# 面试知识点总结
  3. todoList使用教程
  4. JavaScript编码风格指南(中文版)
  5. Xamarin迁移到 Unified API 注意事项
  6. iPhone播放音乐
  7. 凡聊过必留下痕迹-破解加密的WeChat数据库
  8. linux c 实现大数相乘
  9. android147 360 程序锁fragment
  10. C语言一维数组中的数据随机排列
  11. javascript 的点击复制事件
  12. Linux系统编程(1)——文件与I/O之C标准I/O函数与系统调用I/O
  13. ZOJ 3529 A Game Between Alice and Bob(博弈论-sg函数)
  14. Prolog 外部不能有 DOCTYPE 声明。处理资源 'http://192.168.115.152:8082/api/EmpApi.aspx' 时出错。第 3 行,位置: 11
  15. SUSE 11下安装DPDK
  16. AlertDialog的写法
  17. .net4.5部署到docker容器
  18. css简单的一些基础知识
  19. JavaWeb数据库长时间不访问断开链接解决思路
  20. 【爬虫】在Xpath中使用正则

热门文章

  1. 求帮助 html5三次贝塞尔曲线问题
  2. 安装networking-sfc
  3. XCTF攻防世界Web之WriteUp
  4. SpringBoot多profile文件配置
  5. Windows环境下安装Hadoop+Hive的使用案例
  6. [转帖]如何用十条命令在一分钟内检查 Linux 服务器性能
  7. POSTGRESQL日期函数大全
  8. 洛谷 P4198 楼房重建 题解
  9. 小白必看的Python爬虫流程
  10. llinux 进阶篇