Loading

邢栋博客

“程序积累“

golang声明通道struct{}

sign := make(chan struct{}, 3) sign <- struct{}{} <-sign 声明通道sign的时候以chan struct{}作为其类型的。其中的类型字面量struct{}有些类似于空接口类型interface{},它代表了既不包含任何字段也不拥有任何方法的空结构体类型。 struct{}类型值的表示方法只有一个,即:struct{}{}。并且,它占用的内存空间是0字节。确切的说,这个值在整个go程序中永远都只会存一份。虽然我们无数次的使用这个值的字面量,但是用到的却都是同一个值。 当我们仅仅把通道当做传...

go语句及其执行规则(goroutine)

go语言不但有着独特的并发编程模型,以及用户级线程goroutine,还拥有强大的用于调度goroutine、对接系统线程的调度器。 这个调度器是go语言运行时系统的重要组成部分,它主要负责统筹调配go并发编程模型中的三个元素,即:G(gotoutine的缩写),P(process的缩写)和M(machine的缩写)。 其中M指代的是系统级线程。而P指的是一种可以承诺若干个G,而且能够使这些G适时地与M进行对接,并得到真正运行的中介。 demo: package main import ( "fmt" //"time" ) func ma...

关于golang值的内存寻址

go语言哪些值不可以寻址 1.常量的值。 2.基本类型值的字面量。 3.算术操作的结果值。 4.对各种字面量的索引表达式和切片表达式的结果值。不过有一个例外,对切片字面量的索引结果值却是可寻址的。 5.对字符串变量的索引表达式和切片表达式的结果值 6.对字典变量的索引表达式的结果值。 7.函数字面量和方法字面量,以及对它们的调用表达式的结果值。 8.结构体字面量的字段值,也就是对结构体字面量的选择表达式的结果值。 9.类型转换表达式的结果值。 10.类型断言表达式的结果值。 11.接收表达式的结果值。 总结:不可变的、临时结果和不安全的 1.不可变的值不...

golang笔记之Printf函数

package main import "fmt" import "os" type point struct { x, y int } func main() { //Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。 p := point{1, 2} fmt.Printf("%v\n", p) // {1 2} // 如果值是一个结构体,%+v 的格式化输出内容将包括结构体的字段名。 fmt.Printf("%+v\n", p) // {x:1 y:...

golang笔记之值类型和引用类型

值类型:所有像int、float、bool和string这些类型都属于值类型,使用这些类型的变量直接指向存在内存中的值,值类型的变量的值存储在栈中。当使用等号=将一个变量的值赋给另一个变量时,如 j = i ,实际上是在内存中将 i 的值进行了拷贝。可以通过 &i 获取变量 i 的内存地址。 引用类型:复杂的数据通常会需要使用多个字,这些数据一般使用引用类型保存。一个引用类型的变量r1存储的是r1的值所在的内存地址(数字),或内存地址中第一个字所在的位置,这个内存地址被称之为指针,这个指针实际上也被存在另外的某一个字中。 局部变量被声明后必须在相...

php的IteratorAggregate简单事例

<?php //IteratorAggregate Generators //事例(一) class Language implements IteratorAggregate{ private $names; public function __construct(){ $this->names = explode(',','PHP,JS,JAVA,GO'); } public function getIterator(){ ...

数据结构以及常用数据结构的定义

数据:描述客观事物的符号,如文本、图片、视频 数据元素:组成数据的,有一定意义的基本单位 数据项:一个数据元素可以由若干个数据项组成 数据对象:性质相同的数据元素的组合 数据结构:数据结构是计算机用来组织和存储数据的方式。具体定义:数据结构是指相互之间存在着一种或者多种关系的数据元素的集合和该集合中数据元素的关系组成 数据结构 逻辑结构 1.线性结构 (线性表、栈、队、串、数组) 2.非线性结构 树结构和图结构 物理(存储)结构 1.顺序结构 2.链式结构 3.索引结构 4.散列结构 数据运算 1.插入运算 2.删除运算 3.修改运算 4.查找运算 5...

php实现单链表

<?php class node{ //初始化变量,包括存储的内容和下一个数据的指针 public $id = 0; public $data = ''; public $next = null; //构造函数,设置存储内容的数据 public function __construct($id,$nodedata){ $this->id = $id; $this->data = $nod...

php使用mongo的GridFS存储文件

<?php //php使用mongo的GridFS存储文件 $conn = new MongoClient(); $db = $conn->photos; $collection = $db->getGridFS(); //存储文件 $id = $collection->storeFile('./logo22.png'); //存储文件二进制流 // $data = file_get_contents('./logo22.png'); // $id = $co...

php实现http401授权

<?php //unset($_SERVER['PHP_AUTH_DIGEST']); $username = 'xingdong'; //用户名 $userpass = '123456'; //面膜 $secret = 'xingdong365'; //秘钥 $realm = '401test'; $opaque = md5($secret.$_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']); if (!isset($_SERVER['PHP_AUTH_DIGEST']) || emp...