go学习开篇

我是做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方法归属一个类。

时间: 2024-08-27 09:33:04

go学习开篇的相关文章

HTML学习开篇

最近开的博客,一切都是从零开始,昨天刚写了java的开篇,今天写一写HTML开篇. 很多初学者都不太看重前端的学习,甚至鄙视前端,我刚开始时就这样.其实,要想成为一个真正的程序员,前端和后端都必须了解,然后再重点向自己想成为的方向发展.废话少说,无论你想成为哪方面的程序员,前端都是要学的. 前端知识学校好像不教,反正我的学校不学.介绍几个学习HTML的地方.慕课网,w3school,codecadmy. 这次简单介绍下HTML的基本结构. what is HTML? HTML stands fo

android多媒体框架学习开篇

接下去一段时间,入手学习安卓系统的多媒体框架部分,估计要花上半年左右.希望这个过程能有所获得,我也会在csdn上记录学习的整个过程,一方面督促自己整理知识,一方面跟大家分享一下学习的过程,坚持! 版权声明:本文为博主原创文章,未经博主允许不得转载.

Swift学习开篇

Swift是苹果在六月份推出的一款全新的编程语言.可以运行在IOS Mac 两个平台上,用来代替苹果以前的编程语言object-c,object-c 诡异的语法让很多人望而止步,但是Swift的语法却和现在主流的编程的语言的语法相似.它融合了object-c js python等语言的特点语法简洁,大大降低了开发者学习的门槛.而且Swift 和 object-c 在同一个项目中可以相互调用,这使得object-c 开发者更容易接受Swift. 7月份接触了半个多月的Swift,由于某些原因没有坚

Cocos2dx-3.2 引擎学习[开篇]

开始学习Cococs2dx3.2版本的源代码,看众多老将呕心沥血的Cocos2dx,还是大有裨益的. 记录下来所学所得.言简意赅即可. 此时官网上cocos2dx已经是3.3beta版本了.不跟风追新潮,安稳学习3.2版本. 学习之始,望自己可以保持.每周至少一篇Blog,最多无上限.依据业余时间而定. 激励一下自己: 趁着年轻,努力证明自己. 废话不说了,轻舟扬满帆,硬弓拉满弦,蓄势进发.

Node学习——开篇

前言:自从下决心转学前端以来,我的专业课java基本荒废了,所以对于后台开发的逻辑也已基本忘干净了.但是作为一名准前端程序猿,我认为还是有必要了解后端开发的,虽不必深入学习,但是能够了解项目从前端到后端的整个流程,实现简单的业务逻辑(增删改查)应该对我们大有裨益.NodeJS应该说是前端开发人员涉及后端开发的最佳选择,因为使用的是前端很熟悉的Javascript语言. 一.什么是Node.js Node.js是一个基于V8引擎的服务器端Javascript运行环境.Javascript(简称JS

Linux运维架构师学习开篇——笔记

从毕业从事硬件失效分析方面工作近三年, 偏冷门的行业,一直在工厂产线,吸着产品线散发出的一道道气息,闲暇之余我也在思考难道我今后只能在工厂待一辈子吗?我的职业只能在生产线处理不良产品,我的未来就是作为一个硬件高级维修工吗?我想走出产品线,对未来的职业发展充满迷茫,内心思想一直在挣扎.马上奔三后该做什么,能做什么? 以前接触过Linux,但仅仅是复制粘贴指令,配置IP,最基本操作而已,没有接触到真正的技术,为了今后能有一技之长,有个明确的发展方向(云端),也为了能拿到一份不错的薪水,提高生活质量,

php源码学习——开篇

这个系列是对php源码的学习记录.由于本人水平有限,可能并不能写的非常清晰和深入,所以,可能只适合本人阅读:) 初次接触php源码,看到陌生的文件夹和大量的文件,可能会觉得茫然无措.php-internals是一个非常好的网站,可以系统的帮你讲解一下php的源码和架构.虽然它的版本可能只是php5.3,但是并不妨碍学习. https://devzone.zend.com/也是一个很好的网站,可以从中对php的引擎ZEND理解颇多. 原文地址:https://www.cnblogs.com/And

Android学习开篇

工作之后的做法一直是遇到哪方面不懂就去学那一方面的内容,然后记录成相应博客的形式.但还是有必要系统地学一遍安卓相关的知识,构建自己的知识体系.此处以<名师讲坛-Android开发实战经典>为基础.结合工作中解决问题用到的知识点,形成一套系统的笔记.并且输出相应的用例代码,方便以后调用.这些代码的工程将以教材提供的代码为基础,在上面进行扩展.

IOS学习开篇整理

IOS一些基础知识 万物皆对象:IOS是面向对象的过程 图片就是一个图片对象(UIimage对象) 文字就是一个文字对象(UItextField对象) 按钮就是一个按钮对象 (UIbutton对象) UIimage,UItextField,UIbutton这些都属于UIview 子控件和父控件是相对而言,如果不存在父控件也就不存在子控件一说,反之亦然. UIviewcontrol是管家,其负责的是 箭头的位置就是程序的入口 UI是基础,网络是重点,jason/xml 第一个小项目,减法计算器 设