go语法基础 | 青训营笔记

118 阅读2分钟

基础语法对比的示例,其中一个是使用Go语言,另一个是相应的C++代码。

  1. 变量声明和初始化:

Go语言示例:


package main

import "fmt"

func main() {
	var a int
	a = 10

	b := "Hello, world!"

	fmt.Println(a)
	fmt.Println(b)
}

C++示例:

#include <iostream>
using namespace std;

int main() {
	int a;
	a = 10;

	string b = "Hello, world!";

	cout << a << endl;
	cout << b << endl;

	return 0;
}

2. 条件语句和循环结构:

Go语言示例:


package main

import "fmt"

func main() {
	num := 5

	if num > 0 {
		fmt.Println("Positive")
	} else if num == 0 {
		fmt.Println("Zero")
	} else {
		fmt.Println("Negative")
	}

	for i := 0; i < 5; i++ {
		fmt.Println(i)
	}

	j := 0
	for j < 5 {
		fmt.Println(j)
		j++
	}
}

C++示例:

#include <iostream>
using namespace std;

int main() {
	int num = 5;

	if (num > 0) {
		cout << "Positive" << endl;
	} else if (num == 0) {
		cout << "Zero" << endl;
	} else {
		cout << "Negative" << endl;
	}

	for (int i = 0; i < 5; i++) {
		cout << i << endl;
	}

	int j = 0;
	while (j < 5) {
		cout << j << endl;
		j++;
	}

	return 0;
}

3. 函数定义和调用:

Go语言示例:


package main

import "fmt"

func sum(a, b int) int {
	return a + b
}

func main() {
	result := sum(5, 3)
	fmt.Println(result)
}

C++示例:

#include <iostream>
using namespace std;

int sum(int a, int b) {
	return a + b;
}

int main() {
	int result = sum(5, 3);
	cout << result << endl;

	return 0;
}

4. 结构体和方法:

Go语言示例:


package main

import "fmt"

type Rectangle struct {
	width  int
	height int
}

func (r Rectangle) area() int {
	return r.width * r.height
}

func main() {
	rect := Rectangle{width: 5, height: 3}
	fmt.Println(rect.area())
}

C++示例:

#include <iostream>
using namespace std;

class Rectangle {
public:
	int width;
	int height;

	int area() {
		return width * height;
	}
};

int main() {
	Rectangle rect;
	rect.width = 5;
	rect.height = 3;
	cout << rect.area() << endl;

	return 0;
}

5.

// C++代码示例
#include <iostream>
using namespace std;

int main() {
    int num = 10;
    
    if (num > 0) {
        cout << "Positive number" << endl;
    } else if (num < 0) {
        cout << "Negative number" << endl;
    } else {
        cout << "Zero" << endl;
    }
    
    for (int i = 0; i < 5; i++) {
        cout << i << " ";
    }
    cout << endl;
    
    return 0;
}
// Go代码示例
package main

import "fmt"

func main() {
    num := 10
    
    if num > 0 {
        fmt.Println("Positive number")
    } else if num < 0 {
        fmt.Println("Negative number")
    } else {
        fmt.Println("Zero")
    }
    
    for i := 0; i < 5; i++ {
        fmt.Print(i, " ")
    }
    fmt.Println()
}

这个示例展示了一个简单的C++代码和相应的Go代码,以演示相似的思维方式在Go中的应用。

  • 在C++中,我们使用using namespace std引入了命名空间std,以便在代码中使用coutendl等标准库函数。

  • 在Go中,我们使用import "fmt"引入了标准库包fmt,以便在代码中使用PrintlnPrint等函数。

  • 在C++中,我们使用int关键字声明整数变量num并初始化为10。

  • 在Go中,我们使用:=符号进行短变量声明,声明变量num并将其初始化为10。

  • 在C++中,我们使用if-else if-else控制流语句来判断变量num的值,并输出相应的消息。

  • 在Go中,我们也使用if-else if-else控制流语句来判断变量num的值,并使用Println函数输出相应的消息。

  • 在C++中,我们使用for循环打印0到4的数字。

  • 在Go中,我们使用for循环和短变量声明,打印0到4的数字,并使用Print函数输出。

注意,在Go中,使用Println函数时,默认会在输出后换行,而在C++中,我们使用endl来实现换行。