golang初识3

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[1])
    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 := 0, 0
    ret2 := 1

    for input1 > 0 {
        ret1 = ret1 + input1
        input1--
    }

    // n! + ... + 3! + 2! + 1!;
    for input2 > 0 {
        tmp = input2
        for tmp > 1 {
            ret2 = ret2 * tmp
            tmp--
        }

        ret3 = ret3 + ret2
        ret2 = 1
        input2--
    }
    return ret1, ret3
}

exec:

go run termial_factorial.go 9

原文地址:https://www.cnblogs.com/xiaobin-hlj80/p/10670454.html

时间: 2024-10-10 20:00:43

golang初识3的相关文章

GoLang初识

原文地址:https://www.cnblogs.com/linhongquan/p/9683594.html

初识golang

golang是一门编译型的语言. 问题1:int和*int有啥区别?和c语言中有区别么? var a int = 32 var b *int = &a fmt.Println("type(a)=", reflect.TypeOf(a)) fmt.Println("type(b)=", reflect.TypeOf(b)) 输出: type(a)= inttype(b)= *int 结论是:int是整型,*int是指向int型的指针.和c语言的是一致的 对in

golang面向对象初识

struct是变量的集合 interface是方法的集合 struct与interface都支持匿名字段, 换言之, 支持组合实现继承. golang的struct与C++的class一样, 只能声明变量, 不能初始化. golang的错误机制就是借且多值返回将错误作为结果返回. 所以关键API调用后, 备必检查err结果. golang的"."运算符很聪明, 会在变量及其指针间智能切换. 但定义method, 一般会将指针做为ReceiveType. 除非是明确不改调用对象的值, 即

新篇章,Golang 和 beego 初识

beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API.Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado.sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface.struct 嵌入等)而设计的一个框架. Go is an open source programming language that makes it easy to build simple, reliable,

公开课|一个小运维的《Golang 入门心路历程》

成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成. 视频版 公开课主要内容: 缘起 初识 熟悉 实践 爱上 缘起 本人之前是 hadoop hbase 运维,为了节约成本 hadoop client 都是多用户的,也就是不同的业务线在同一台机器上.导致一个问题就是一个业务资源占用高,跑死其他业务线.在这种情况下我就想如何解决这个问题呢?这时候我接触到了 Docker--实现资源隔离.随着对Docker的深入了解以及身边人经常谈论 Go 语言,我感觉 Go 语言很牛,平时开始慢慢关注 G

golang goroutine channel [fmt.Println=>String]

初识golang,这部分也不是很了解,百度了一下,做个小记录 goroutine是golang用来做并发处理的,使用起来很简单  go func(){...}(),就是看起来随便用一般而容易go的滥用,所以使用时要仔细斟酌才好. channel 大约是用来在线程间传递数据的,主线程开通一个channel,goroutine往channel中存入内容 1.channel只能用make创建 c := make(chan int) 2.channel中存入数据 c<-2  //把2存入到channel

初识 go 语言

目录 go简介 安装 hello world 函数 变量 常量 可见性规则 结束语 前言: 最近组内要试水区块链,初步方案定为使用fabirc来弄,而fabric的智能合约就是用go写的,借此机会正好学下go,本文也是从零开始,将go的基本语法,结构体,函数,方法,接口,并发等以小demo的方式进行讲解,有的地方会对比java加深记忆 go简介 go又称golang 是由Google开发,于2009年11月开源的一种服务端编程语言,go 很简洁,高效,支持并发 ,总之值得一看-- 维基百科 安装

golang学习总结

学习golang注意点: 导的包必须使用:或者使用_未使用的包,作用是调用该包下的初始化方法. 局部变量声明必须使用. go语言的包和java的相似,包名.变量访问 1. 初识go语言 1.1 Hello World package main import "fmt" func main() { fmt.Println("hello world"); } 1.2 go 数据类型 布尔: var a bool = true var b bool = false 整型:

Python - 初识Python

Python - 初识Python 认识开发语言 开发语言有高级语言的低级语言之分 低级语言: c, 混编, 属于机器码,编程中底层用的 实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差 高级语言: Python, Jave, PHP, C#, go.. 属于字符码,相比机器码跟接近于自然语言,好理解. 实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好 解释型和编译型语言 首先Python 是一门解释型语言, 计算机是不能识别高级语言的,因