golang初识3 - func
1. 功能块(function block)
格式:
func function_name( [parameter list] ) [return_types] {
//body
}
与delphi的异同:
(1)关键字
Delphi: procedure 和 function
Go: 使用一个func替代以上2个。
(2)参数列表
Delphi: 使用冒号(:)来声明
Go:省略冒号(:)
(3)返回值
Delphi:使用冒号(:)来声明,并且只能返回一个!
Go:省略冒号(:),而且能返回多个(牛X的一点)
src:termial_factorial.go
package main import (
"fmt"
"os"
"strconv"
) func main() {
input, err := strconv.Atoi(os.Args[])
if err != nil {
fmt.Println(err)
}
x, y := mul_add(input)
fmt.Println("阶加", input, "=" ,x, "\n阶乘,累加", input, "=", y)
} func mul_add(n int) (int, int) {
var tmp int
input1, input2 := n, n // 赋初值
ret1, ret3 := ,
ret2 := for input1 > {
ret1 = ret1 + input1
input1--
} // n! + ... + 3! + 2! + 1!;
for input2 > {
tmp = input2
for tmp > {
ret2 = ret2 * tmp
tmp--
} ret3 = ret3 + ret2
ret2 =
input2--
}
return ret1, ret3
}
exec:
go run termial_factorial.go
golang初识3 - func的更多相关文章
- golang初识5 - interface
1. interface-new (1) abstract format: type abstractName interface { method_name1 [return_type] } (2) ...
- golang初识4 - Go 并发
Go的CSP并发模型实现:M, P, G Go实现了两种并发形式.第一种是大家普遍认知的:多线程共享内存.其实就是Java或者C++等语言中的多线程开发.另外一种是Go语言特有的,也是Go语言推荐的: ...
- golang初识 和 变量,常量,iota
目录 一.go语言与python 1. go语言 2. python 二.变量相关 1. go语言的基本语法 2. 标识符和关键字 3. 变量声明 (1)声明变量时未指定初始值 (2)声明变量时指定初 ...
- golang初识2
1. 赋值与申明 str := "Hello, WebAssembly" // 简短声明 标准格式: var str string str = "Hello, WebAs ...
- golang初识 - install go on ubuntu
WSL: Ubuntu 18.04 1. install go (1) unzip sudo mkdir -p /usr/local/go sudo tar zxvf go1.12.4.linux-a ...
- 初始Golang
Golang初识 字节跳动也就是我们常说的今日头条 1.今日头条基于Go语言构建千亿级微服务的实践 今日头条当前后端服务超过80%的流量是跑在Go构建的服务上 微服务数量超过100个 高峰QPS超过7 ...
- golang使用 mongo
连接集群 mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?op ...
- Golang下通过syscall调用win32的dll(calling Windows DLLs from Go )
很多同学比如我虽然很喜欢golang,但是还是需要调用很多遗留项目或者其他优秀的开源项目,这时怎么办呢?我们想到的方法是用package里的syscall结合cgo 注意此处有坑: 在我调试时显示no ...
- Golang语言的入门开始
一.golang介绍与安装 二.golang-hello world 三.golang的变量 四.golang的类型 五.golang的常量 六.golang的函数(func) 七.golang的包 ...
随机推荐
- 西门子SCL读写DB数据
数据块间接寻址方式,仅供参考. STATUS_1:= DB11.DW[COUNTER]; //字节间接寻址STATUS_2:= DB12.DX[WNO, BITNO]; //位间接寻址,用户改变WNO ...
- MFC中关于运行时类信息及动态创建对象的两个宏的意义(转)
http://blog.csdn.net/ligand/article/details/49839507 MFC运行时类信息 用途: 程序在运行时,获取对象类的信息及类的继承关系 实现: 1.定义的类 ...
- Ubuntu 16.04 环境下配置apache2.4 + php5.6
相信用惯了Windows的朋友一开始接触Linux是很崩溃的,因为很多东西都是通过命令行来完成的,包括安装绝大多数的开发工具以及环境,那么在Ubuntu下其实可以直接通过apt-get指令来安装apa ...
- 图的深度优先遍历(DFS)—递归算法
实验环境:win10, DEV C++5.11 实验要求: 实现图的深度优先遍历 实验代码: #include <iostream> #define maxSize 255 #includ ...
- initWithFrame方法的使用
1. initWithFrame方法是什么? initWithFrame方法用来初始化并返回一个新的视图对象,根据指定的CGRect(尺寸). 当然,其他UI对象,也有initWithFrame方法, ...
- vue 图片加载失败调用
<img :src="bak" @error="imgLoadError()" alt="bak"> data(){ retur ...
- Spark SQL External DataSource简介
随着Spark1.2的发布,Spark SQL开始正式支持外部数据源.这使得Spark SQL支持了更多的类型数据源,如json, parquet, avro, csv格式.只要我们愿意,我们可以开发 ...
- C++实验七
#include <iostream> using namespace ::std; int main() { ios_base::fmtflags original_flags = co ...
- Python基础:十一、流程控制(if语句、while循环)
一.流程控制——if循环 1.第一种语法: if条件: #引号是将条件与结果分开 结果1 #四个空格,或者一个tab键,这个是告诉程序满足条件的话,运行这个结果 结果2 #如果条件是真(True)执行 ...
- 如何编译luabind支持vs2010之后所有版本
步骤 下载https://github.com/luabind/luabind/tree/0.9. 其最后一次commit为 Revision: 8c66030818f0eacbb7356c16776 ...