博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习go语言 我的习题答案 chapter3
阅读量:7254 次
发布时间:2019-06-29

本文共 2684 字,大约阅读时间需要 8 分钟。

hot3.png

这章节主要讲的是go中函数使用 在做习题过程中碰到的几个比较值得纪念的问题是 定义了命名返回函数 但是没有把它放在括号里面 结果一直编译通不过 但是一眼看过去还是不知道怎么错了A
还有一个给我深刻印象的就是go的强类型检查 以及变量的申明方式 和c/c++区别比较明显的就是定义array 之前好像看过c/c++中的指针定义 那个*放在哪里的问题 还有就是数组[]应该放在哪里比较合适 在go中数据类型全都后置 比如:
var test_var int
test_var这个变量的类型是int 这个变量申明如果是在函数体外的 那么var就必不可少 但是在函数内部可以使用 := 来定义 这个和=还是有区别的 定义和赋值完全分开 越写越觉得是c/c++的升级版本 呵呵
package mainimport (        "fmt"        "strings")func main() {        /*        for i := 1; i<=100; i++ {                fmt.Println(strings.Repeat("A", i))        }        for i := 1; i<=100; i++ {                switch {                case i%3==0 && i%5==0 :                        fmt.Println("FizzBuzz")                case i%5==0:                        fmt.Println("Buzz")                case i%3==0:                        fmt.Println("Fizz")                default:                        fmt.Println(i)                }        }        for i := 0; i<10; i++ {                fmt.Println(i)        }        var i int        LOOP:            if i < 10 {                    fmt.Println(i)                    i += 1                    goto LOOP            }        var arr [10]int        for i := range arr {                fmt.Println(i)        }        */}pengphy@Pengfei-Xue dsproxy_go$ cat chapter3.go package mainimport (        "fmt")func getOrderedArg(a,b int) (small, big int) {        small = a        big = b        if a > b {                small = b                big = a        }        return}func float64Mean(data_in []float64) (mean float64) {        data_in_len := len(data_in)        if data_in_len == 0 {            return 0.0        }        sum := 0.0        for _, value := range data_in {                sum += value        }        mean = sum / float64(data_in_len)        return}type Stack []intfunc (s Stack) push(value int) Stack {        if len(s)+1 > cap(s) {                fmt.Println("stack is full, can not store more")        }        s = append(s, value)        return s}func (s Stack) pop() (st Stack, value int) {        if len(s) == 0 {                fmt.Println("Stack is empty, can not pop")        }        value = s[len(s)-1]        st = s[:(len(s)-1)]        return}func main() {        /*        s := make(Stack, 0, 20)        fmt.Println(s)        s = s.push(32)        fmt.Println(s)        s, value := s.pop()        fmt.Println(value)        fmt.Println(s)        fmt.Println(getOrderedArg(1,2))        fmt.Println(getOrderedArg(4,2))        test_float64_slice := [...]float64{0.0,1.0,2.3232,4e-5,43.00}        fmt.Println(float64Mean(test_float64_slice[:]))        for i:= 0; i<10; i++ {                defer fmt.Println(i)        }        */}

转载于:https://my.oschina.net/pengfeix/blog/107730

你可能感兴趣的文章
windows 下安装使用ipython
查看>>
苹果电脑macbook怎样强制关闭软件
查看>>
Linux下编译LibCURL
查看>>
错误提示:通过 Web 服务器的身份验证的用户无权打开文件系统上的文件
查看>>
python 取两数的百分比
查看>>
1-MSP430点亮一个灯
查看>>
Local System、Local Service與Network Service
查看>>
利用SQL语句查询数据库中所有表
查看>>
虚拟机中的锁优化简介(适应性自旋/锁粗化/锁削除/轻量级锁/偏向锁)
查看>>
Golang的交互模式进阶-读取用户的输入
查看>>
mycat中间件--linux安装mycat1.6版本
查看>>
MySQL的用户管理
查看>>
linux配置java环境变量(详细)
查看>>
HTML CSS + DIV实现整体布局
查看>>
【开源项目】电视盒子好用又强大的APP: TVRemoteIME
查看>>
Java开发报表——Grid++Report 报表设计器
查看>>
三、加载公共语言运行时
查看>>
ABP框架系列之三十五:(MVC-Controllers-MVC控制器)
查看>>
SpringBoot(二)Web整合开发
查看>>
finalkeyword对JVM类载入器的影响
查看>>