编写第一个Go程序
编码格式
Go语言源码文件编码格式必须是 UTF-8 格式,否则会导致编译器出错。
结束语句
在 Go 程序中,一行代表一个语句结束。每个语句不需要像其它语言一样以分号 ";"结尾,因为这些工作都将由 Go 编译器自动完成。
如果你打算将多个语句写在同一行,它们则必须使用 ";"人为区分。实例如下:
package main import (
"fmt"
) func main() {
fmt.Println("oldboy")
fmt.Println("Linux");
fmt.Println("Java");fmt.Println("DBA")
fmt.Println("Python");fmt.Println("Golang");
}
代码注释
注释不会被编译,每一个包应该有相关注释。
Go语言代码注释支持 "//"、"/**/" 两种注释方式,不能嵌套。 建议用单行注释 // 源码里也是这么用的
单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。实例如下
// 单行注释 /*
多行注释
*/
编写 Hello World
1、创建文件 hello.go,不写入任何内容。运行 go build hello.go 命令进行编译。将会输出如下错误:
can't load package: package main:
hello.go::: expected 'package', found 'EOF'
因为Go语言中,所有文件必须隶属于某一个包。需要在文件的头部声明一个package name,其中package为关键字,name为包名。
2、在hello.go文件中添加一条语句,之后重新进行编译。
添加内容如下:
package main
执行编译,将会输出如下错误:
runtime.main_main·f: relocation target main.main not defined
runtime.main_main·f: undefined: "main.main"
因为Go程序启动时,需要在文件中有一个可标识入口。Go程序的入口函数是main函数。
3、在hello.go文件中添加另外一行,并且重试。
添加内容如下:
package main
func main(){}
执行运行命令 go run hello.go ,程序正确执行并很快就退出了
到目前为止,我们已经创建了自己的第一个程序。虽然没有功能,但是已经可以正常运行了。
4、我们继续添加功能,添加内容如下:
package main
func main(){
Println("hello world")
}
执行编译,将会输出如下错误:
./hello.go::: undefined: Println
因为Println函数存放在fmt包中。我们程序中没有主动引入fmt包,所以编译器报未定义错误。
如果我们需要使用这些包中的功能,首先需要import引入相应的包。包中的可导出组件可以通过 包名.组件名的方式进行调用。
函数Println和其它读写文本和字符的函数,都存放在一个叫做fmt的包中——formatting的缩写。
5、再添加几行代码,添加内容如下:
package main
import "fmt"
func main(){
fmt.Println("hello world")
}
执行 go run hello.go 命令,运行程序。运行结果如下:
hello world
Go 程序启动执行顺序如下:
按顺序导入所有被 main 包引用的其它包,然后在每个包中执行如下流程:
如果该包又导入了其它的包,则从第一步开始递归执行,但是每个包只会被导入一次。
然后以相反的顺序在每个包中初始化常量和变量,如果该包含有 init 函数的话,则调用该函数。
在完成这一切之后,main 也执行同样的过程,最后调用 main 函数开始执行程序。
编写第一个Go程序的更多相关文章
- 搭建java开发环境、使用eclipse编写第一个java程序
搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...
- 【安装eclipse, 配置java环境教程】 编写第一个java程序
写java通常用eclipse编写,还有一款编辑器比较流行叫IJ.这里我们只说下eclipse编写java的前期工作. 在安装eclipse之前要下载java的sdk文件,即java SE:否则无法运 ...
- 【C#入门教案-02】用记事本编写第一个C#程序-Hello World
02-用记事本编写第一个C#程序-Hello World 广东职业技术学院 欧浩源 [1]进行.NET程序开发的最基本环境配备 .NET Framework + 代码编辑工具(记事本或Noetpad ...
- 一起学Hadoop——使用IDEA编写第一个MapReduce程序(Java和Python)
上一篇我们学习了MapReduce的原理,今天我们使用代码来加深对MapReduce原理的理解. wordcount是Hadoop入门的经典例子,我们也不能免俗,也使用这个例子作为学习Hadoop的第 ...
- 从零自学Java-1.编写第一个Java程序
编写第一个Java程序 完成工作:1.在文本编辑器中输入一个Java程序. 2.使用括号组织程序. 3.保存.编译和运行程序. package com.Jsample;//将程序的包名称命名为com. ...
- Java笔记:编写第一个Java程序
2017.6.17 1.编写第一个Java程序 创建text文本,命名第一个Java程序.txt 在里面编写Java代码 public class Demo1{ public static void ...
- 假期作业02:安装JDK与文本编辑器并编写第一个Java程序
假期作业02:安装JDK与文本编辑器并编写第一个Java程序 一.安装JDK与文本编辑器并编写第一个java程序 首先在oracle官网(需要创建账号,进行登录后方可使用)按照自己的需求下载JDK(h ...
- 编写第一个MapReduce程序—— 统计气温
摘要:hadoop安装完成后,像学习其他语言一样,要开始写一个“hello world!” ,看了一些学习资料,模仿写了个程序.对于一个C#程序员来说,写个java程序,并调用hadoop的包,并跑在 ...
- 使用Playground编写第一个Swift程序
从控制台输出“HelloWorld”是我学习C语言的第一步,也是我人生中非常重要的一步.多年后的今天,我仍希望以HelloWorld作为第一步,与大家共同开启一个神奇.瑰丽的世界——Swift编程. ...
- unbutu中安装jdk并编写第一个java程序
第一部分:安装jdk 1.首先在putty控制台中输入如下命令,检验系统中是否已经装有jdk. java -version 如果显式的结果如下图,则说明没有安装. openjdk是在linux下默认安 ...
随机推荐
- LWIP内存管理
LWIP是一种TCP/IP协议栈,与嵌入式操作系统一样也提供了内存管理. 内存池里面有多个同样大小的内存,不同类型的内存池其里面的内存大小不一样.
- servlet中如何发送ajax请求并动态拼接数据到html中
废话不多说,直接上代码 1.servlet 2.js 3.jsp 有不懂得欢迎来扣我哦^_^ 详细介绍请查看全文:https://cnblogs.com/qianzf/ 原文博客的链接地址:https ...
- composer 更新
composer self-update --preview 清除缓存 composer clearcache
- git的使用和一些命令
1. https://github.com/ 在这个网站注册一个帐号. http://gitref.org/zh/creating/ 待会写.. [命令] a)
- 编写高质量代码改善C#程序的157个建议——建议128:考虑让派生类的名字以基类名字作为后缀
建议128:考虑让派生类的名字以基类名字作为后缀 派生类的名字可以考虑以基类名字作为后缀.这带来的好处是,从类型的名字上我们就知道它包含在哪一个继承体系中. Exception及其子类就是这样一个典型 ...
- mybatis 输入、输出映射
一.输入映射 mapper.xml的参数只有一个.可以传参数,基本简单类型,hashmap和javabean (一).Javabean的方法. 需求:通过小说名和作者模糊找书. 1.定义Javabea ...
- FileInputStream和FileOutStream的使用——文件字节输入/输出流
最近又退回到java EE的学习,这篇博客就来讲解一下字节流中最重要的两个类FileInputStream和FileOutputStream的用法: FileInputStream:全称是文件字节输入 ...
- C++ 的写好库编译好,DELPHI或者Java做界面,iOS 和 Android 就都搞定。
当然也可以使用BCB和相关的开发库来开发App,只是别人没法帮助你. 摘自<想到做到-Android开发关键技术与精彩案例>.(詹建飞) p40
- 用 Inkscape 做 SVG 给 TPath
FireMonkey 里的 TPathData 支持 SVG 的基本绘图指令,因此可以运用 Inkscape 软件,提取 SVG 的绘图内容,请见图片说明: INKSCAPE https://inks ...
- Partition--分区切换2
有分区表TB2和TB2_History CREATE TABLE TB2( ID BIGINT IDENTITY(1,1) PRIMARY KEY, C1 NVARCHAR(200))ON[ps_T ...