- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我看到这个问题的正确答案是“for and range”。
但是 for 语句是 Go 中唯一可用的循环语句,并且 range 关键字允许您迭代列表的项目,如数组或映射。为了理解它,您可以将 range 关键字翻译成for each index of。
//for loop
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
fmt.Println("Value of i is now:", i)
}
}
//range is used inside a for loop
a := [...]string{"a", "b", "c", "d"}
for i := range a {
fmt.Println("Array item", i, "is", a[i])
}
capitals := map[string] string {"France":"Paris", "Italy":"Rome", "Japan":"Tokyo" }
for key := range capitals {
fmt.Println("Map item: Capital of", key, "is", capitals[key])
}
//range can also return two items, the index/key and the corresponding value
for key2, val := range capitals {
fmt.Println("Map item: Capital of", key2, "is", val)
}
最佳答案
我认为问题是关于不同形式的 For 循环:
简单的循环变体工作示例:
package main
import "fmt"
func main() {
//0 1 2 3 4 5 6 7 8 9
for i := 0; i < 10; i++ {
fmt.Print(i, " ")
}
fmt.Println()
i := 0
for ; i < 10; i++ {
fmt.Print(i, " ")
}
fmt.Println()
for i := 0; i < 10; {
fmt.Print(i, " ")
i++
}
fmt.Println()
//2 4 6 8 10 12 14 16 18 20
for i := 1; ; i++ {
if i&1 == 1 {
continue
}
if i == 22 {
break
}
fmt.Print(i, " ")
}
fmt.Println()
i = 0
for {
fmt.Print(i, " ")
i++
if i == 10 {
break
}
}
fmt.Println()
for i, j := 0, 0; i < 5 && j < 10; i, j = i+1, j+2 {
fmt.Println(i, j)
}
}
对于数组、 slice 、字符串、映射、 channel ,使用 range 关键字:
package main
import "fmt"
func main() {
ary := [5]int{0, 1, 2, 3, 4}
for index, value := range ary {
fmt.Print("ary[", index, "] =", value, " ")
}
fmt.Println()
for index := range ary {
fmt.Print("ary[", index, "] =", ary[index], " ")
}
fmt.Println()
for _, value := range ary {
fmt.Print(value, " ")
}
fmt.Println()
slice := []int{20, 21, 22, 23, 24, 25, 26, 27, 28, 29}
for index, value := range slice {
fmt.Println("slice[", index, "] =", value)
}
fmt.Println()
str := "Hello"
for index, value := range str {
fmt.Println("str[", index, "] =", value)
}
fmt.Println()
mp := map[string]int{"One": 1, "Two": 2, "Three": 3}
for key, value := range mp {
fmt.Println("map[", key, "] =", value)
}
fmt.Println()
ch := make(chan int, 10)
for i := 0; i < 10; i++ {
ch <- i
}
close(ch)
for i := range ch {
fmt.Print(i, " ")
}
fmt.Println()
}
和标签为 break 标签和 continue 标签:
package main
import "fmt"
func main() {
a, b := 1, 1
Loop1:
for {
b++
Loop2:
for {
a++
switch {
case a == 2:
fallthrough
case a == 3:
fmt.Println(3)
case a == 4, a == 5:
continue
case a == 7:
continue Loop1
case a == 9:
break Loop2
case a == 10:
break Loop1
case a == 8:
break
default:
fmt.Println(a, b)
}
}
}
}
关于go - 以下哪些是 Go 中用于控制循环的有效关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484049/
我遇到了一个奇怪的问题。我有这个: $(document).ready(function () {
我正在编写一个程序,它从列表中读取一些 ID,从中找出不同的 URL,然后将图像保存到我的 C: 驱动器中。 如果我在浏览器中导航到图像 URL,它们就会起作用。此外,如果我尝试从不同的服务器获取图像
我编写了一个 REST WCF RIA Silverlight 4.0 兼容服务,我可以从 javascript + jQuery.1.4.2.js + JSON2.js(当然,还可以从 .NET 4
我很确定这个网站实际上还没有得到回答。一劳永逸地,与 32 位有符号整数范围内的数字字符串匹配的最小正则表达式是什么,范围是 -2147483648至 2147483647 . 我必须使用正则表达式进
我有两个data.table;我想从那些与键匹配的元素中随机分配一个元素。我现在这样做的方式相当慢。 让我们具体点;这是一些示例数据: dt1<-data.table(id=sample(letter
我已经安装了 celery 、RabitMQ 和花。我可以浏览到花港。我有以下简单的工作人员,我可以将其附加到 celery 并从 python 程序调用: # -*- coding: utf-8 -
我正在使用 ScalaCheck 在 ScalaTest 中进行一些基于属性的测试。假设我想测试一个函数,f(x: Double): Double仅针对 x >= 0.0 定义的, 并返回 NaN对于
我想检查文件是否具有有效的 IMAGE_DOS_SIGNATURE (MZ) function isMZ(FileName : String) : boolean; var Signature: W
在 Herbert Schildt 的“Java:完整引用,第 9 版”中,有一个让我有点困惑的例子。它的关键点我无法理解可以概括为以下代码: class Test { public stat
我在工作中查看了一些代码,发现了一些我以前没有遇到过的东西: for (; ;) { // Some code here break; } 我们一直调用包含这个的函数,我最近才进去看看它是
在 Herbert Schildt 的“Java:完整引用,第 9 版”中,有一个让我有点困惑的例子。它的关键点我无法理解可以概括为以下代码: class Test { public stat
我试图编写一个函数,获取 2D 点矩阵和概率 p 并以概率 p 更改或交换每个点坐标 所以我问了一个question我试图使用二进制序列作为特定矩阵 swap_matrix=[[0,1],[1,0]]
这个问题在这里已经有了答案: Using / or \\ for folder paths in C# (5 个答案) 关闭 7 年前。 我在某个Class1中有这个功能: public v
PostgreSQL 10.4 我有一张 table : Column | Type ------------------------- id | integer| title
我正在 Postgresql 中编写一个函数,它将返回一些针对特定时区(输入)计算的指标。 示例结果: 主要问题是这只是一个指标。我需要从其他表中获取其他 9 个指标。 对于实现此目标的更简洁的方法有
我需要在 python 中模拟超几何分布(用于不替换采样元素的花哨词)。 设置:有一个装满人口许多弹珠的袋子。弹珠有两种类型,红色和绿色(在以下实现中,弹珠表示为 True 和 False)。从袋子中
我正在使用 MaterializeCSS 框架并动态填充文本输入。我遇到的一个问题是,在我关注该字段之前,valid 和 invalid css 类不会添加到我的字段中。 即使我调用 M.update
是否有重叠 2 个 div 的有效方法。 我有以下内容,但无法让它们重叠。 #top-border{width:100%; height:60px; background:url(image.jpg)
我希望你们中的一位能向我解释为什么编译器要求我在编译单元中重新定义一个静态固定长度数组,尽管我已经在头文件中这样做了。这是一个例子: 我的类.h: #ifndef MYCLASS_H #define
我正在使用旧线程发布试图解决相同问题的新代码。什么是安全 pickle ? this? socks .py from socket import socket from socket import A
我是一名优秀的程序员,十分优秀!