golang c 语言教程中文,Go 语言教程实战
安装在线教程
可以在本机运行,
然后安装教程
go get code.google.com/p/go-tour/gotour
或者中文的
go get bitbucket.org/mikespook/go-tour-zh/gotour
最后执行安装产生的gotour执行文件,即可在http://localhost:3999
打开教程。
一些练习的答案
#46 练习:斐波纳契闭包
package main
import "fmt"
// fibonacci 函数会返回一个返回 int 的函数。
func fibonacci() func() int {
var a int = 1
var b int = 1
return func() int {
c := a+b
a = b
b = c
return c
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
#69 练习:等价二叉树
package main
import (
"bitbucket.org/mikespook/go-tour-zh/tree"
"fmt"
)
/*
type Tree struct {
Left *Tree
Value int
Right *Tree
}
*/
// Walk 步进 tree t 将所有的值从 tree 发送到 channel ch。
func Walk(t *tree.Tree, ch chan int) {
if t != nil {
Walk(t.Left, ch)
ch
Walk(t.Right, ch)
}
}
// Same 检测树 t1 和 t2 是否含有相同的值。
func Same(t1, t2 *tree.Tree) bool {
ch1 := make(chan int, 10)
go Walk(t1, ch1)
ch2 := make(chan int, 10)
go Walk(t2, ch2)
for i := 0; i < 10; i++ {
if
return false
}
}
return true
}
func main() {
fmt.Println(Same(tree.New(1), tree.New(1)))
}
#57练习:错误
package main
import (
"fmt"
)
type ErrNegativeSqrt float64
func (e ErrNegativeSqrt) Error() string {
return fmt.Sprintf("cannot Sqrt negative number: %f", e)
}
func Sqrt(f float64) (float64, error) {
if f < 0 {
return 0, ErrNegativeSqrt(f)
}
x := f
for i := 0; i < 10; i++ {
x = (x + f/x) / 2
}
return x, nil
}
func main() {
fmt.Println(Sqrt(2))
fmt.Println(Sqrt(-2))
}
#44 练习:Map
package main
import (
//"fmt"
"strings"
"bitbucket.org/mikespook/go-tour-zh/wc"
)
func WordCount(s string) map[string]int {
result := map[string]int {}
f := strings.Fields(s)
for _, v := range f {
result[v] += 1
}
return result
}
func main() {
wc.Test(WordCount)
}
有疑问加站长微信联系(非本文作者)
golang c 语言教程中文,Go 语言教程实战相关推荐
- python3菜鸟教程中文-Python3菜鸟教程 1.介绍
对简明Python3教程 1.介绍感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! Python是少有的几种既强大又简单的编程语言.你将惊喜地发现通过使用Python即可轻松 ...
- 微软再推 Rust 语言免费中文教程,更香了!
公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 在过去的几个月,Amazon.Facebook.微软以及谷歌等科技巨头正疯狂吸纳人才市场上的 Rust 语言程序员 ...
- 数据科学教程:R语言与DataFrame[2016版]
数据科学教程:R语言与DataFrame[2016版] r HarryZhu 2016年03月16日发布 保存 标签:至少1个,最多5个 r× 开发语言 平台框架 服务器 数据库和缓存 开发工具 系统 ...
- SAP UI5 初学者教程之八 - 多语言的支持试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...
- 全国计算机等级考试二级c语言程序设计,全国计算机等级考试二级教程:C语言程序设计(2016年版) pdf epub mobi txt 下载...
全国计算机等级考试二级教程:C语言程序设计(2016年版) pdf epub mobi txt 下载 图书介绍 ☆☆☆☆☆ 教育部考试中心 编 下载链接在页面底部 发表于2021-05-17 类似图书 ...
- Wix 安装部署教程(十三) -- 多语言安装包
原文:Wix 安装部署教程(十三) -- 多语言安装包 这几天摸索WIX的多语言安装包(这里是Wix的setup 工程,不是Bundle),终于走通了,感谢网友uni的指点.WIX的多语言安装包能够根 ...
- WordPress多语言翻译插件 - WPML使用教程
WPML不但可用于主题插件翻译,而且是构建多语言网站的利器. 下面介绍WPML多语言插件一般用户最基本的使用方法: 第一步:上传WPML插件 1:WPML多语言CMS(核心插件,文件夹名称为sitep ...
- ocaml快餐教程(1) - 强类型语言
ocaml快餐教程(1) - 强类型语言 Keep说:自律给我自由. 在汽车.航天.铁路等高可靠性要求的代码中,经常要求使用MISRA C/C++标准,该标准对于C语言中不同整数类型之间的赋值有比较严 ...
- C 语言从入门到精通教程(2021 )
C 语言从入门到精通教程(2021年) 文章目录 计算机常识 什么是计算机程序 ? 什么是计算机语言 ? 常见的计算机语言类型有哪些 ? 什么是C语言? C语言历史 C语言标准 C语言现状 为什么要学 ...
最新文章
- 关于AJAX 第三篇
- 利用 sys.sysprocesses 检查 Sql Server的阻塞和死锁
- springboot 打卡功能_实战:如果让你用SpringBoot实现签到奖励的功能,你会怎么做?...
- .NET部分知识点整理
- 私人仓库免费后本地git和远程github首次连接
- C# 语法练习(2): 字符转义
- win10电脑插耳机没声音_电脑没有声音是什么原因 教您电脑突然没声音怎么解决...
- mysql goldengate_goldengate同步mysql
- 企业邮箱domino跟exchange
- 两台文件服务器共享文件同步,如何实现两台或多台电脑远程修改文件同步更新?...
- TokenInsight作为联盟伙伴加入CoinMarketCap的数据透明联盟(DATA) | TokenInsight
- python 进行照片分类_python 照片文件名分类
- python爬取12306
- 2019高考数学必考知识点,高考数学知识板块
- 降维 php,线性降维方法 - 百度开发者中心的个人空间 - OSCHINA - 中文开源技术交流社区...
- 瑞星杀毒软件影响Applet无法启动的解决方法
- NFC Forum发布NFC数据交换格式(NDEF)规范
- html5考试总结300字,中段考试总结作文300精选集锦
- maven下载jia比较慢的解决方法
- 从永远到永远-Spring Cloud(一)
热门文章
- 精彩flash《威尼斯的泪》
- 京东主图视频用这种方法批量下载速度更快
- 1. 理解分支限界法
- mysql开启日志记录及清理general_log文件
- 火爆全网,软件测试数据库常用 SQL 语句总结,你要的我都有......
- JS中charCodeAt和 charAt方法
- 陈立杰:关于Paper,这是个好问题!
- WhatsApp-跨境电商必争之地
- 【C#+SQL Server】实现ERP管理系统 四:销售收款单模块设计(附源码和资源)
- 模型评估指标之间的一些联系