Go 入门 - 包,函数和变量
主要内容来自中文版的官方教程Go语言之旅
目的为总结要点
包,函数和变量
包
import 语法,多个用括号换行扩起,包之间不需要间隔符,用引号引起
import (
"fmt"
"math/rand"
)
// 官方认为分组导入比多个导入更好
// 用`.`引用包内对象,仅有首字母大写的那些对象是可导出的
函数
函数声明
func add(x int, y int) int { //类型在变量名之后
return x + y
}
func add(x, y int, s string) int { // 其实输入变量就像是没有var的变量声明一样
fmt.Println(s)
return x + y
}
func swap(x, y string) (string, string) { // 函数的返回值只用声明类型,也可以返回多个值,但是要记住用括号括起来
return y, x
}
func split(sum int) (x, y int) { // 返回值也可以提前声明好,这样就可以直接用了,官方建议这种用法还是用在短函数里面
x = sum * 4 / 9
y = sum - x
return
}
变量
var c, python, java bool // var 可以用在包或者函数级别的声明中
var i, j int = 1, 2 // 变量可以初始化
var c, python, java = true, false, "no!" // 初始化值存在时,可以省略类型
c, python, java := true, false, "no!" // 和上一个等效
var (
c, python bool
java string
) // 这种操作也是存在的
我们说var = 和 := 是等价的。但是函数外(包之外)的每一个语句都必须以关键字开头,因此:=这种结构不能用在函数之外。
bool
string
int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
byte // uint8 的别名
rune // int32 的别名
// 表示一个 Unicode 码点
float32 float64
complex64 complex128 // go 支持复数运算
go 的变量需要显示类型转换
var i int = 42
var f float64 = float64(i)
var u uint = uint(f)
// 如果在函数内
i := 42
f := float64(i)
u := uint(f)
常量声明
const World = "世界"
不能用:=,数值常量是高精度的值,有意思的是,他可以被解释成int和float
Go 入门 - 包,函数和变量的更多相关文章
- Go语言从入门到放弃(一) 变量/常量/函数
HelloWorld 我们先看看一个最简单的HelloWorld代码 package main import "fmt" func main() { fmt.Println(&qu ...
- Python 包、模块、函数、变量作用域
Python 项目的组织结构 - 包 -- 模块 --- 类 ---- 函数.变量 Python是利用包和模块来组织一个项目的. 包: 包的物理表现是一个文件夹,但是一个文件夹却不一定是个包, ...
- Python(五) 包、模块、函数与变量作用域
一.while循环与使用场景 CONDITION=1 while CONDITION <=5 : CONDITION +=1 print("hello") else: pri ...
- Python3(五) 包、模块、函数与变量作用域
一.Python项目的组织结构 最顶级的组织结构:包(文件夹) 第二个层级:模块(文件) 第三个层级:类 第四个层级:函数.变量(不属于组织结构,是类本身的特性) 二.Python包与模块的名字 1. ...
- Python入门之 函数
Python入门之 函数 1.初识函数 1.1 什么是函数? <1> 将某个功能封装到一个空间中就是一个函数 <2> 减少重复代码 1.2 定义函数 def -- python ...
- 查看Linux下*.a库文件中文件、函数、变量等情况
在Linux 下经常需要链接一些 *.a的库文件,那怎么查看这些*.a 中包 含哪些文件.函数.变量: 1. 查看文件:ar -t *.a 2. 查看函数.变里:nm *.a
- 查看Linux下*.a库文件中文件、函数、变量
查看Linux下*.a库文件中文件.函数.变量等情况在Linux 下经常需要链接一些 *.a的库文件,那怎么查看这些*.a 中包 含哪些文件.函数.变量: 1. 查看文件:ar -t xxx.a 2. ...
- Swift语法基础入门三(函数, 闭包)
Swift语法基础入门三(函数, 闭包) 函数: 函数是用来完成特定任务的独立的代码块.你给一个函数起一个合适的名字,用来标识函数做什么,并且当函数需要执行的时候,这个名字会被用于“调用”函数 格式: ...
- Python入门学习:1.变量和简单的数据类型
python入门学习:1.变量和简单的数据类型 关键点:变量.字符串.数字 1.1 变量的命名和使用1.2 字符串1.3 数字1.4 注释 1.1 变量的命名和使用 变量,顾名思义是一个可变的量, ...
随机推荐
- Linux中如何安装loadgenerator
/* 1. 到官方网站到HP官网下载Load Generator 安装文件 _Load_Generator_11.00_T7330-15010.iso或者其它网站下载loadrunner-11-loa ...
- 乘风破浪:LeetCode真题_021_Merge Two Sorted Lists
乘风破浪:LeetCode真题_021_Merge Two Sorted Lists 一.前言 关于链表的合并操作我们是非常熟悉的了,下面我们再温故一下将两个有序链表合并成一个的过程,这是基本功. 二 ...
- UML设计--人月神教
任务分配 用例图 类图 活动图 状态图 使用工具 所有图都是用VISO编辑出来的,因为VISO是比较经典工具,也是学校电脑自带的.....
- DIY简单功能的torrentkitty种子爬虫
过完年回公司比较无聊,一不小心看到微博里美尤莉娅的图片,惊为天人,有图为证!!! 百度之原来这货以前叫小泉彩,貌似动了几个小手术换了个马甲重新出道了.你拍AV你家里知道么?.于是乎下了几个种子看了下, ...
- Android Volley源码分析及扩展
转载请标明出处: http://www.cnblogs.com/why168888/p/6681232.html 本文出自:[Edwin博客园] Volley 介绍 Android系统中主要提供了两种 ...
- #npm install# MSBUILD : error MSB4132: 无法识别工具版本“2.0”。可用的工具版本为 "4.0"。
0.问题描述 Windows 10 最近使用npm install安装项目依赖包,当自动执行至node-gyp rebuild时报错: C:\Users\dsl\Desktop\Pros\ant-de ...
- CyclicBarrier和CountDownLatch笔记
一.CyclicBarrier的使用 Barrier是栅栏,障碍物的意思,这里将它理解为栅栏. Cyclic是重复利用的意思. CyclicBarrier:可重复利用的栅栏.这里附上官方文档的一句解释 ...
- 程序人生:01如何做到招聘要求中的“要有扎实的Java基础”
本文摘自左潇龙博客,原文出处:http://www.zuoxiaolong.com/html/article_232.html 来历 本文来自于一次和群里猿友的交流,具体的情况且听LZ慢慢道来. 一日 ...
- git回滚线上代码
由于之前自己推代码的时候操作失误,push代码的时候没有push到线上的dev分支,而是push到了线上master分支(主要是因为没有在命令后写分支名,直接推到默认master分支上了),覆 ...
- [Python 多线程] RLock可重入锁 (九)
RLock 可重复锁,是线程相关的锁.同样是线程相关的还有threading.local. 线程A获得可重用锁,并可以多次成功获取,不会阻塞.最后要再线程A中和acquire次数相同的release. ...