Golang与C对比学习 (1)

控制结构:

go的控制结构主要有if,switch,for三种,并没有while,可以用for替代while

if:

go的if条件不用括号括起来,但是程序体部分必须用花括号括起来,从而解决了C语言中的歧义问题

switch:

即使没有break,分支也会结束

case中可以用任何的值

分支条件表达式可以省略

for:

表达式不用括起来,比c语言多了单表达式 例如: for 条件 {} 用来代替while

++: 在go语言中++不是表达式而是作为语句来处理,

类型声明:

go语言中规定,声明必须以保留字开头,切类型位于变量名之后

例:

type T struct {
	x,y int
	}//新类型
	const N = 1024//常量
var t1 T = new(T)
t2 =:new(T)
var t3 *T =&t2
func f (i int) float {}
func f2 (i int)(flota,int){}

:=为简易复制,表示在赋值的时候将左侧的变量声明为右侧的类型

泛型:

go中没有模板的概念,但考内置的array,slce,map,channel,就可以指定其他的类型,

切片(slice)是go特有的类型,粗略可以看成是数组的指针

map则是类似hashmap

channel用于并发编程,类似管道

var a[5] string //字符串数组
var s[] string //字符串切片
var m map [int] string //map
var c chan int //管道

f := stacj.get.(float)//cast
时间: 2024-08-02 23:44:47

Golang与C对比学习 (1)的相关文章

[转] Java程序员学C#基本语法两个小时搞定(对比学习)

Java程序员学C#基本语法两个小时搞定(对比学习) 对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. 1.引包 using System;java用import2.构造函数和java语法相同3.析构函数  变量和类的对象都有生命周期,生命周期结束,这些变量和对象就要被撤销.  类的对象被撤销时,将自动调用析构函数.一些善后工作可放在析构函数中完成.  析构函数的名字为~类名,无返回类型,也无参数.Per

对比学习UIKit和AppKit -- ViewController

在iOS中ViewController的基类是UIViewController:Mac中ViewController的基类是NSViewController. Mac中ViewController父类是NSViewController,子类很少,笔者就查到了NSPageController.如果应用中需要,可以Customize. iOS中有好多个ViewController,在Ref2中有介绍,其父类是UIViewController,子类包括UINavigationController.UI

C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义(转载)

C#与Java对比学习:类型判断.类与接口继承.代码规范与编码习惯.常量定义 类型判断符号: C#:object a;  if(a is int) { }  用 is 符号判断 Java:object a; if(a instanceof Integer) { } 用 instanceof 符号判断 类与接口的继承: C#:public class MDataRow : List<MDataCell>, IDataRecord, ICustomTypeDescriptor Java:publi

对比学习UIKit和AppKit--入门级

UIKit是用来开发iOS的应用的,AppKit是用来开发Mac应用的,在使用过程中他们很相似,可是又有很多不同之处,通过对比分析它们的几个核心对象,可以避免混淆. UIKit和AppKit都有一个Application类,每个应用都只创建一个Application对象,分别是UIAplication和NSApplication的实例.但是创建这个对象的方式还是稍有不同,看iOS应用的main函数: ? 1 2 3 4 5 6 int main(int argc, char * argv[])

深入浅出MongoDB(五)mongo语法和mysql语法对比学习

我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识. mongodb与mysql命令对比 关系型数据库一般是由数据库(database).表(table).记录(record)三个层次概念组成.而非关系型数据库mongodb是由数据库(database).集合(collection).文档对象(document)三个层次组成.mongodb对于关系型数据库里的表,没有行和列的关系概念,这体现了模式的自由特点. 语法命令如下列

OC和C对比学习

1.已有C的基础,如何快速入门OC? 1)源文件对比 思考&实现1: 1)在C语言中,我们遇到不同后缀的文件有哪些? .c .o .out .h 扩展名 .h 头文件 .c c语言原文件 .cpp .cc C++语言的原文件 .m Objective-C的原文件 .mm Objective-C++的原文件 OC中常见的两种文件:.m 文件和.h文件 扩展名 原类型 .h        头文件,头文件包含的方法,属性的声明 .m        类的实现文件,参与便衣的文件,用来实现类中的声明的方法

Java程序员学C#基本语法两个小时搞定(对比学习)

对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. 1.引包 using System;java用import2.构造函数和java语法相同3.析构函数  变量和类的对象都有生命周期,生命周期结束,这些变量和对象就要被撤销.  类的对象被撤销时,将自动调用析构函数.一些善后工作可放在析构函数中完成.  析构函数的名字为~类名,无返回类型,也无参数.Person类的析构函数为~ Person().  C#中类

【对比学习】koa.js、Gin与asp.net core——中间件

web框架中间件对比 编程语言都有所不同,各个语言解决同一类问题而设计的框架,确有共通之处,毕竟是解决同一类问题,面临的挑战大致相同,比如身份验证,api授权等等,鄙人对node.js,golang,.net core有所涉猎,对各自的web框架进行学习的过程中发现了确实有相似之处.下面即对node.js的koa.golang的gin与.net core的asp.net core三种不同的web后端框架的中间件做一个分析对比 Node-Koa.js 应用级中间件 //如果不写next,就不会向下

[Golang][Mac]Go 语言学习资料记录

背景:最近的项目开发语言是GOlang 因此需要做一些简单了解和学习记录 又可以学习一下Google的新语言了,想想有些小激动哦~ 官方网站(需FQ才能打开,比如用蓝灯)https://golang.org/ 1. 下载安装:https://golang.org/ 2. 安装完毕后在Mac打开终端,配置环境变量以及创建目录 1 GOPATH=$HOME 2 echo $GOPATH 3 export PATH=$PATH:$(go env GOPATH)/bin 4 mkdir $HOME/go