手机随时阅读
前言符串或串(String)是由数字、字母、下划线组成的一串字符。它是编程语言中表示文本的数据类型。在程序设计中,字符串为符号或数值的一个连续序列。字符串操作就是以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。百度百科相关文档网址:https://studygolang.com/pkgdoc(https://studygolang.co
前言文件的操作在计算机是必不可少的,比如word、excel、ppt,txt等等在日常办公中都是很常用的。文件的操作主要包含:创建文件、打开文件、读取文件、写入文件、关闭文件、打包/解包、压缩/解压缩、改变文件权限、删除文件、移动文件、重命名文件等。Go语言官方库:os、io/ioutil、bufio涵盖了文件操作的所有场景。os提供了对文件IO直接调用的方法,bufio提供缓冲区操作文件的方法,
一、面向对象综合案例微博微博(Microblog)是指一种基于用户关系信息分享、传播以及获取的通过关注机制分享简短实时信息的广播式的社交媒体、网络平台。微博允许用户通过Web、Wap、Mail、App、IM、SMS以及用户可以通过PC、手机等多种移动终端接入,以文字、图片、视频等多媒体形式,实现信息的即时分享、传播互动。百度百科让我们用go来实现微博的关注和评论功能吧,案例如下:gopackage
一、类型断言1,类型断言的定义GO中的类型断言用于检查接口类型变量所持有的值是否实现了期望的接口或者具体的类型。类型断言的语法格式如下:govalue,ok:=x.(T)其中,x表示一个接口的类型的实际值,T表示一个具体的类型(也可为接口类型)。该断言表达式会返回value(x的实际值)和ok(x的值是否等于T的类型),可根据该布尔值判断x是否为T类型:如果T是具体某个类型,类型断言会检查x的动态
一、接口和继承和转换gopackagemainimport"fmt"typeHumanerinterface{SayHello()}typePersonerinterface{HumanerSay()}typeStudentstruct{}func(sStudent)SayHello(){fmt.Println("大家好")}func(sStudent)Say(){fmt.Println("你好"
一、接口1.接口的定义在生日常活中无时不刻不在使用各种接口,比如电脑的usb,手机的充电接口等等。在计算机程序中接口就是一种规范与标准,只是规定了要做哪些事情,具体怎么做,接口是不管的,接口把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口,接口是一种抽象类型,它并没有暴露所含数据的布局或者内部结构,当然也没有那些数据的基本操作,它所提供的仅仅是一些方法而已。很多面
一、结构体方法重写和方法值1.方法重写方法重写又称方法覆盖。方法重写概念方法的重写是指两个方法的返回值、方法名、参数的类型和个数相同(子类重写父类的方法)。方法的重写,不能发生在同类中,只能发生在子类中。若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。gopackagemainimport"fmt"typePersonstruct{namestring
一、结构体方法继承1.继承的概念继承是指一个子类(或称为派生类)继承父类(或称为基类)的特征(属性和操作)。继承是面向对象程序设计时实现代码复用的重要手段,它允许在原有的类的基础上进行扩展,增加功能,这样新产生的类称为子类。2.go中的继承但在Go语言本身并不支持继承。但可以使用组合的方法,实现类似继承的效果。Go语言中,把一个结构体嵌入到另一个结构体的方法,称之为组合。3.方法继承gopacka
一、结构体方法1.结构体方法的定义方法就是把某些逻辑代码封装到一起的集合,用固定格式包起来起个名字。go中的方法是一个函数,拥有附加的,单独元素的参数列表,称之为接收器。它被放在一个方法名之前。接收器的类型决定了如何使用方法。以下是为一个类型定义一个方法的语法gofunc(对象结构体类型)方法名(参数列表)(返回值列表){代码体}2.方法的基本使用gopackagemainimport"fmt"t
一、结构体继承1.结构体继承的概念继承是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。但在go语言中并没继承的概念,只能通过组合来实现继承。组合就是通过对现有对象的拼装从而获得实现更为复杂的行为的方法。继承:一个struct嵌套了另外一个匿名的struct从而实现了继承。组合:一个struct嵌套了宁外一
一、面向对象简介1.面向对象和面向过程1.1面向过程所谓的面向过程就是:强调的是步骤、过程、每一步都是自己亲自去实现的。这些都是以什么正在发生为主要目标进行编程,与面向对象明显的不同就是封装、继承、类。简写为POP。1.2面向对象所谓的面向对象其实就是找一个专门做这个事的人来做,不用关心具体怎么实现的。所以说,面向过程强调的是过程,步骤。而面向对象强调的是对象,也就是干事的人。面向对象是相对于面向
一、通讯录1.什么是通讯录通讯录的信息可以涵盖多项内容比如:姓名、电话号码、单位电话、移动电话、传真号、电子邮件、QQ、MSN、个人主页、公司、街道、邮编、生日、大头贴、车牌、银行账号、俱乐部名称、爱好等等。以往的通讯录都是纸制的容易破损丢失,如今的通讯录都是可以在个人电脑、掌上电脑、移动电话等任何联网设备上录入你的联系人的手机\电话号码、Email、QQ、MSN、微信等通讯录信息。随时随地都可以
一、深拷贝和浅拷贝1.浅拷贝浅拷贝是指对内存地址的复制,让目标对象指针和源对象指向同一片内存空间。go语言中赋值,函数传参,函数返回值都是浅拷贝。gopackagemainimport"fmt"funcmain(){a:=string{"1","2","3"}b:=aa0="浅拷贝"fmt.Println("a:",a)fmt.Println("b:",b)}!在这里插入图片描述(https://
一、结构体1.结构体的定义结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体可以很好地管理一批有联系的数据,使用结构体可以提高程序的易读性2.结构体创建与初始化结构体的格式gotype结构体名struct{成员名数据类型...................}相关案例:gopackagemainimport"fmt"//成员名称前面不能添加var.typeStudentstruct
一、递归函数如果一个函数在内部调用自身本身,这个函数就是递归函数。递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。构成递归的条件:子问题须与原始问题为同样的事,且更为简单不能无限制地调用本身,须有个出口,化简为非递归状况处理1.递归函数的基本使用gopackagemainimport"fmt"funcmain(){c:=Test(3)fmt
一、函数1.什么是函数函数是将具有独立功能的代码块组织成一个整体,使其具有特殊功能的代码集。这段代码集可以直接被另一段程序或代码引用的、可重复使用的、用来实现单一或相关联功能的代码段。目的是为了提高应用的模块性和代码的重复利用率。2.函数的定义和使用在Go语言中,定义一个函数需要声明参数和函数名等。gofunc函数名(参数列表)(返回参数列表){函数体}相关案例:gopackagemainimpo
一、Go容器之列表1.列表的定义列表是一种数据结构,由多元素成的有限序列,即按照一定的线性顺序排列而成的数据项的集合,在这种数据结构上可以进行元素的的插入,删除,修改,和查找。列表的两种主要表现是数组和链表,栈和队列是两种特殊类型的列表。列表(list)底层常见的数据结构有:单链表、双链表等。2.Go中的列表在Go语言中,列表的实现都在container/list包中,内部实现原理是双链表。列表(
一、Go容器之字典1.什么是字典Go中字典也叫做map,map是一种无序的键值对的集合,使用散列表(hash)实现。2.字典的定义govar变量名keyTypevalueTypekeyType表示键类型。valueType表示键对应的值类型。2.1第一种使用方式makegopackagemainimport"fmt"funcmain(){//定义一个键类型为字符串,值类型为整型的mapm:=mak
一、切片操作1.什么是切片切片和数组类似,都是数据集合。和数组不同的是,切片是一块动态分配大小的连续空间。2.切片的定义2.1切片的格式govar变量名T//T表示切片类型。相关案例:gopackagemainimport"fmt"funcmain(){//声明整型切片varnumListint//声明字符串切片varstrListstring//声明一个空切片,{}表示已经分配内存,但是切片里面
一、Go容器之数组1.什么是数组数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便,把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。百度百科数组是一段固定长度的
一、循环结构1.什么是循环循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。根据判断条件,循环结构又可细分为以下两种形式:先判断后执行的循环结构和先执行后判断的循环结构。2.Go中的循环在Go语言中循环的结构体格式如下:gofor初始语句;条件表达式;结束语句{循环体代码}for循环会不停地进行循环,直到条件表达式返回false才推
前言Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择。以Go语言来说,switch(开关语句)常和casedefault一起使用。一、switch语句1.switch基本使用Go语言中switch中的每一个case都是独立代码块,无需通过break语句跳出代码块,以避免执行到下一个case代码块。相关案例:gopackagemainimport"fmt"funcmain(){
前言if条件语句是一个重要的编程语句,它用于告诉程序在某个条件成立的情况下执行某段程序,而在另一种情况下执行另外的语句。一、IF语句1.IF语句的基本使用Go语言中,ifelse条件判断格式如下:goif表达式1{分支1}elseif表达式2{分支2}else{分支3}当表达式1的结果为true时,会执行分支1的代码。当表达式1的结果为false时,会执行表达式2,若结果为true,则会执行分支2
一、逻辑运算符用于连接多个条件,一般来讲就是关系表达式,最终的结果也是一个bool值。1.逻辑运算符的概念运算符说明示例&&逻辑AND运算符。如果两边的操作数都是True,则条件True,否则为False(A&&B)为FalseII逻辑OR运算符。如果两边的操作数有一个True,则条件True,否则为False(AIIB)为True!逻辑NOT运算符。如果条件为True,则逻辑NOT条件False
一、赋值运算符赋值运算符的分类:基本赋值运算符:基本的赋值运算符是“=”。一开始可能会以为它是“等于”,其实不是的。它实际上意味着把右边表达式的值赋给左边的运算数。复合赋值运算符:复合的赋值运算符,又称为带有运算的赋值运算符,也叫赋值缩写。比如:+=、=、=、/=、%=。1.赋值运算符的概念运算符说明示例=普通赋值c=a+b将a+b表达式结果赋值给c+=相加后再赋值c+=a等价于c=c+a=相减后
前言运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。在Go语言中运算符大致可以分为5种类型:算术运算符、关系运算符、逻辑运算符、赋值运算符、其他运算符。一、算术运算符1.算术运算符的概念下表列出了所有Go语言的算术运算符。运算符术语实例结果+相加10+20输出结果30相减1020输出结果10相乘1020输出结果200/相除20/1
一、常量1.常量的定义常量是一个简单值的标识符,在程序运行时,不会被修改的量。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。常量的定义格式:goconstidentifiertype=value你可以省略类型说明符type,因为编译器可以根据变量的值来推断其类型。定义一个Go语言常量非常简单,它和变量的声明方式类似,将var关键字替换成const即可,代码如下:goco
前言go语言中分为类型转换(typeconversion)、类型断言(typeassertion)和指针类型转换。一、类型断言gopackagemainimport"fmt"funcmain(){varainterface{}=10t,ok:=a.(int)ifok{fmt.Println("int",t)}t2,ok:=a.(float32)ifok{fmt.Println("float32",
一、数据类型概要go语言中有四种数据类型:基础类型,复合类型,引用类型,接口类型。类型名称长度零值说明bool布尔类型1false其值不为真即为假,不可以用数字代表true或falsebyte字节型10uint8别名rune字符类型40专用于存储unicode编码,等价于uint32int,uint整型4或80有符号32位或无符号64位int8整型10128127,uint8整型100255int
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号