莆田网站建设建站系统,版面设计图片素材,天津做网站得公司,定制软件开发公司有哪些说要学GO#xff0c;但是总是三天打鱼#xff0c;两天晒网的#xff0c;既然如此就记录到博客上#xff0c;这样既能督促自己#xff0c;也能随时查看自己学习的进度。
[2023-09-20]
Go 语言最少有个 main() 函数。
iota : 特殊常量,可理解为 const 语句块中的行索引
…说要学GO但是总是三天打鱼两天晒网的既然如此就记录到博客上这样既能督促自己也能随时查看自己学习的进度。
[2023-09-20]
Go 语言最少有个 main() 函数。
iota : 特殊常量,可理解为 const 语句块中的行索引 参与运算的两数各对应的二进位相[与]
| 参与运算的两数各对应的二进位相[或]
^ 参与运算的两数各对应的二进位相[异] 二进制左移相当于乘以[2^n] 二进制右移, 相当于除以[2^n] A 0011 1100 B 0000 1101 ----------------- AB 0000 1100 A|B 0011 1101 A^B 0011 0001 package mainimport fmtvar a,b int 60 , 15
var c int
func init() {c (a2)b
}func main() {add : func(a,b int) int {return ab}result : add(a,b)fmt.Println(a,,b,,result)multi : func(a,b int) int {return a*b}result multi(a,b)fmt.Println(a,*,b,,result)fmt.Println(a2)fmt.Println(c)fmt.Println(Hello, World!)
}
[2023-09-21]
题外话php也有左移用法跟go一样以前一直没用过刚看完左移就来了一个这样的场景有一个物联网模块判断数量的就是用到的左移。
看了都是一些基本的用法跟大部分语言大差不差这里值得注意的是数组的用法在php中没有发现数组长度必须是固定的但是go的数组长度是不可改变的这时候就需要用到切片切片是对数组的抽象所以可以理解为一个动态数组
按照之前的经验觉得可能最常用到的循环还是range 对 map(集合) 的循环相当于php的foreach吧。 var numbers []int // 这时候是一个空切片len0cap0numbers append(numbers, 2,3,4) // 追加元素fmt.Println(numbers[1:最后一个] , numbers[1:]) // numbers[1:最后一个] [3 4]fmt.Println(numbers[第一个:3] , numbers[:3]) // numbers[第一个:3] [2 3 4]numbers1 : make([]int, len(numbers), (cap(numbers))*2) // 定义之前两倍容量的切片/* 拷贝 numbers 的内容到 numbers1 */copy(numbers1,numbers)printSlice(numbers1) m : map[string]int{apple: 1,banana: 2,orange: 3,}// 遍历 Map相当于php中的foreach($m as $k$v)for k, v : range m {fmt.Printf(key%s, value%d\n, k, v)}
[2023-09-22]
interface(接口)应该算是学习go最重要的一个环节了学习go目前是为了做接口那这个就是最需要理解透彻的一个东西了要用好interface就需要回顾下前两天看到的一个叫结构体的东西那时候看了也是一眼扫过觉得就是类似与模型。
在菜鸟教程中接口给的案例并没有很直观的给出结构体和接口的关系当然这是我个人脑子不转的原因所以没看出来。后来在网上看了下别人写的案例才大概清楚。
这里有一个特殊需要记忆的点就是可以用空白标识符 _ 来忽略错误返回避免报错
package mainimport fmt// Api 定义接口
type Api interface {GetName() stringGetIdcode() string
}// Mode 定义类型
type Mode struct {Name stringIdcode string
}func (s Mode) GetName() string{return s.Name
}
func (s Mode) GetIdcode() string{return s.Idcode
}func main() {var s Mode //等同于 var s new(Mode) ?s.Idcode X00001s.Name 小明var api Apiapi s fmt.Printf(name:%s,idcode: %s\n, api.GetName(), api.GetIdcode())
}
说实话我php的interface用得比较少大部分项目都是自己独立完成很多方面可能都是按照自己的习惯去完成这次看完以后觉得php的interface可以有很多实用的场景比如我写了一个类我可以定义多个interface让user只能用这个类的AB方法admin可以用这个类的CD方法具体看下之后的项目会不会有实际运用到的情况这里贴上上面代码对应的PHP代码
?php
interface Api {public function getName();public function getIdcode();
}class Mode implements Api {public $Name;public $Idcode;public function getName() {return $this-Name;}public function getIdcode() {return $this-Idcode;}
}$s new Mode();
$s-Idcode X00001;
$s-Name 小明;
$api $s;
printf(name:%s,idcode: %s\n, $api-getName(), $api-getIdcode());
?