`

Go语言旅行二 A Tour of Go

    博客分类:
  • Go
go 
阅读更多
Constants
常量
Constants are declared like variables, but with the const keyword.
常量像变量一样声明,但是用常量关键字const
Constants can be character, string, boolean, or numeric values.
常量可以是字节,字符串,布尔 或数字
package main

import "fmt"

const Pi = 3.14

func main() {
	const World = "世界"
	fmt.Println("Hello", World)
	fmt.Println("Happy", Pi, "Day")

	const Truth = true
	fmt.Println("Go rules?", Truth)
}

输出:
Hello 世界
Happy 3.14 Day
Go rules? true

Numeric Constants
数值常量
Numeric constants are high-precision values.
数值常量是高精度值
An untyped constant takes the type needed by its context.
未定义类型常量根据上下文来确定类型
Try printing needInt(Big) too.
也可以试着输出printing needInt(Big)
package main

import "fmt"

const (
	Big = 1<<100
	Small = Big>>99
)

func needInt(x int) int { return x*10 + 1 }
func needFloat(x float64) float64 {
	return x*0.1
}

func main() {
	fmt.Println(needInt(Small))
	fmt.Println(needFloat(Small))
	fmt.Println(needFloat(Big))
	
}

输出:
21
0.2
1.2676506002282295e+29

fmt.Println(needInt(Big))
prog.go:19: constant 1267650600228229401496703205376 overflows int

For

Go has only one looping construct, the for loop.
Go只有一个循环管结构体就是for循环
The basic for loop looks as it does in C or Java, except that the ( ) are gone (they are not even optional) and the { } are required.
基本的for循环看起来和C或Java,除了()不见了,()是可选项,但是{}是必须的
package main

import "fmt"

func main() {
	sum := 0
	for i := 0; i < 10; i++ {
		sum += i
	}
	fmt.Println(sum)
}

输出:
45

As in C or Java, you can leave the pre and post statements empty.
像C或Java,你可以设置前后都是空
package main

import "fmt"

func main() {
	sum := 1
	for ; sum < 1000; {
		sum += sum
	}
	fmt.Println(sum)
}

输出:
1024

At that point you can drop the semicolons
如果是那样的话你可以去掉分号
package main

import "fmt"

func main() {
	sum := 1
	for sum < 1000 {
		sum += sum
	}
	fmt.Println(sum)
}


If you omit the loop condition, it loops forever.
如果你省略了循环条件,死循环
package main

func main() {
	for ; ; {
	}
}


And with no clauses at all, the semicolons can be omitted, so an infinite loop is compactly expressed.
根本没有语句的话,分号省略,于是一个无限循环可以简洁的表示
package main

func main() {
	for {
	}
}


If

The if statement looks as it does in C or Java, except that the ( ) are gone (they are not even optional) and the { } are required.
If语句看起来和在C或Java中一样,除了不见了()
(Sound familiar?)
看起来很眼熟啊?哈哈
package main

import (
	"fmt"
	"math"
)

func sqrt(x float64) string {
	if x < 0 {
		return sqrt(-x) + "i"
	}
	return fmt.Sprint(math.Sqrt(x))
}

func main() {
	fmt.Println(sqrt(2), sqrt(-4))
}

输出:
1.4142135623730951 2i

Like for, the if statement can start with a short statement to execute before the condition.
像for,if语句能在条件前执行段语句
Variables declared by the statement are only in scope until the end of the if.
语句的变量声明的范围直到if结束
package main

import (
	"fmt"
	"math"
)

func pow(x, n, lim float64) float64 {
	if v := math.Pow(x, n); v < lim {
		return v
	}
	return lim
}

func main() {
	fmt.Println(
		pow(3, 2, 10),
		pow(3, 3, 20),
	)
}

输出:
9 20

Variables declared inside an if's short statement are also available inside any of the else blocks.
在if's里的变量声明在else块里也可用
package main

import (
	"fmt"
	"math"
)

func pow(x, n, lim float64) float64 {
	if v := math.Pow(x, n); v < lim {
		return v
	} else {
		fmt.Printf("%g >= %g\n", v, lim)
	}
	// can't use v here, though
	return lim
}

func main() {
	fmt.Println(
		pow(3, 2, 10),
		pow(3, 3, 20),
	)
}

输出:
27 >= 20
9 20
分享到:
评论

相关推荐

    A Tour of C++, 2nd Edition

    A Tour of C++ (2nd Edition) (C++ In-Depth Series) By 作者: Bjarne Stroustrup ISBN-10 书号: 0134997832 ISBN-13 书号: 9780134997834 Edition 版本: 2 出版日期: 2018-07-09 pages 页数: 815 In A Tour of ...

    C++语言导学 A Tour of C++(C++之父写的入门书)

    《计算机科学丛书:C++语言导学》作者是C++语言的设计者和最初实现者,写作本书的目的是让有经验的程序员快速了解C++现代语言。书中几乎介绍了C++语言的全部核心功能和重要的标准库组件,以很短的篇幅将C++语言的...

    手工安装GO官方教程A Tour of Go.docx

    A Tour of Go是官方提供的一个关于go语言短小精悍的教程,覆盖了包、变量、函数、数据类型等基础知识,也包括了方法、接口、并发编程等高级内容,读完并通过其中的练习题,短时间即可入门GO了。 该教程是一个WEB服务...

    A tour of C++ 2nd

    In A Tour of C++, Second Edition, Bjarne Stroustrup, the creator of C++, describes what constitutes modern C++. This concise, self-contained guide covers most major language features and the major ...

    A Tour of C++ 2nd

    A Tour of C++ 2nd ,c++学习资料

    A Tour of C++

    A Tour of C++ 一本不错的学习C++的书

    [mirror] A Tour of Go.zip

    [mirror] A Tour of Go

    A Tour of TensorFlow

    Abstract—Deep learning is a branch of artificial intelligence employing deep neural network architectures that has significantly advanced the state-of-the-art in computer vision, speech recognition, ...

    A Tour of C++/ C++语言导学

    高清非扫描版,带书签。Bjarne Stroustrup。。。。。。

    Bjarne Stroustrup A Tour of C++ (2013).pdf

    Bjarne Stroustrup A Tour of C++

    Whirlwind Tour Of Python

    如果你懂一些编程知识,比如学过C,Java等语言开发工具,或者你是一位具有工程背景的研究者或者工作者,那么这本书将会快速带你走进python世界,这是初学python者最佳学习资料,本附件是书中的练习题等源代码。...

    A Guided Tour Of Mathematical Physics (By Roel Snieder, Department Of Geophysics, Utrecht Univers.pdf

    A Guided Tour Of Mathematical Physics By Roel Snieder

    A wavelet tour of signal processing 3rd edition

    英文三版。 Mallet 的小波分析经典教程。全书13章800多页,非常详尽的介绍了小波分析原理和应用。很经典的教程。

    A Whirlwind Tour of Python

    对于想快速了解和使用python的人,这是一本非常好的入门书,与《python数据科学手册》为姊妹篇。

    C++语言导学.A Tour of C++.pdf

    《计算机科学丛书:C++语言导学》作者是C++语言的设计者和最初实现者,写作本书的目的是让有经验的程序员快速了解C++现代语言。书中几乎介绍了C++语言的全部核心功能和重要的标准库组件,以很短的篇幅将C++语言的...

    新版图书 A.Tour.of.C++.2nd.Edition.2018.7

    Stroustrup presents the C++ features in the context ... The tour covers some extensions being made for C++20, such as concepts and modules, and ends with a discussion of the design and evolution of C++.

    A Wavelet Tour of Signal Processing 3rd Edition

    Mallat的《信号处理的小波导引》的第三版 经典程度不用多说 PDF版本

Global site tag (gtag.js) - Google Analytics