Syzq

A blog that you won't read.


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

  • 搜索

The Way to Go(五)

发表于 2018-06-04 | 分类于 The Way to Go
接口接口是什么Go 语言不是一种 “传统” 的面向对象编程语言:它里面没有类和继承的概念。 但是 Go 语言里有非常灵活的 接口 概念,通过它可以实现很多面向对象的特性。接口提供了一种方式来 说明 对象的行为:如果谁能搞定这件事,它就可以用在这儿。 接口定义了一组方法(方法集),但是这些方法不包含(实现)代码:它们没有被实现(它们是抽象的)。接口里也不能包含变量。 通过如下格式定义接口: 12345type Namer interface { Method1(param_list) return_type Method2(param_list) return_type ...} 上面的 Namer 是一个 接口类型。 按照约定,只包含一个方法的)接口的名字由方法名加 [e]r 后缀组成,例如 Printer、Reader、Writer、Logger、C ...
阅读全文 »

The Way to Go(四)

发表于 2018-05-27 | 分类于 The Way to Go
结构和方法结构体定义Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型。 组成结构体类型的那些数据称为 字段(fields)。每个字段都有一个类型和一个名字;在一个结构体中,字段名字必须是唯一的。 结构体是值类型,因此可以通过new 函数来创建。 结构体定义的一般方式如下: 12345type identifier struct { field1 type1 field2 type2 ...} type T struct {a, b int} 也是合法的语法,它更适用于简单的结构体。 结构体的字段可以是任何类型,甚至是结构体本身 ,也可以是函数或者接口 。可以声明结构体类型的一个变量,然后像下面这样给它的字段赋值: 123var s Ts.a = 5s.b = 8 使用 new使用 new 函数给一个新的结构体 ...
阅读全文 »

The Way to Go(三)

发表于 2018-05-27 | 分类于 The Way to Go
数组与切片 数组 数组是具有相同 唯一类型 的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整型、字符串或者自定义类型。数组长度必须是一个常量表达式,并且必须是一个非负整数。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。 1var identifier [len]type 切片声明切片的格式是: 1var identifier []type //不需要说明长度 注意不要用指针指向 slice。切片本身已经是一个引用类型,所以它本身就是一个指针。 new() 和 make() 的区别看起来二者没有什么区别,都在堆上分配内存,但是它们的行为不同,适用于不同的类型。 new(T) 为每个新的类型T分配一片内存,初始化为 0 并且返回类型为*T的内存地址:这种方法 返回一个指向类型为 T,值为 0 的地址 ...
阅读全文 »

The Way to Go(二)

发表于 2018-05-24 | 分类于 The Way to Go
控制结构Go 提供了下面这些条件结构和分支结构: if-else 结构 switch 结构 select 结构,用于 channel 的选择 可以使用迭代或循环结构来重复执行一次或多次某段代码(任务): for (range) 结构 一些如 break 和 continue 这样的关键字可以用于中途改变循环的状态。 此外,你还可以使用 return 来结束某个函数的执行,或使用 goto 和标签来调整程序的执行位置。 if-elseif可以包含一个初始化语句(如:给一个变量赋值)。这种写法具有固定的格式(在初始化语句后方必须加上分号): 123if initialization; condition { // do something} 例如:1234val := 10if val > max { // do something ...
阅读全文 »

The Way to Go(一)

发表于 2018-05-23 | 分类于 The Way to Go
开始调试器&格式化说明符 在 fmt.Printf 中使用下面的说明符来打印有关变量的相关信息: %+v 打印包括字段在内的实例的完整信息 %#v 打印包括字段和限定类型名称在内的实例的完整信息 %T 打印某个类型的完整说明 %d 用于格式化整数(%x 和 %X 用于格式化 16 进制表示的数字) %g 用于格式化浮点型(%f 输出浮点数,%e 输出科学计数表示法 使用 panic 语句来获取栈跟踪信息(直到 panic 时所有被调用函数的列表)。 使用关键字 defer 来跟踪代码执行过程 类型转换由于 Go语言不存在隐式类型转换,因此所有的转换都必须显式说明 类型 B 的值 = 类型 B(类型 A 的值)12345valueOfTypeB = typeB(valueOfTypeA)例:a := 5.0b := int(a) 数字类型int 和 uint 在 32 ...
阅读全文 »

HTTP协议及发展历史

发表于 2018-05-20 | 分类于 零碎笔记
经典五层模型 HTTP协议发展历史一、HTTP/0.9(1991年发布)HTTP 是基于 TCP/IP 协议的应用层协议。它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口。 只有一个 GET 命令 没有 header 等描述数据的信息,服务器只能回应 HTML 格式的字符串 123<html> <body>Hello World</body></html> 服务器发送完毕,就关闭 TCP 连接 二、HTTP/1.0(1996.05发布) 增加了很多命令 任何格式的内容都可以发送,新增 POST 和 HEAD 等命令。 增加status code 和 HTTP header 每次通信必须包括头部信息(HTTP header),来描述元数据。 新增状态码(status code)、权限( ...
阅读全文 »

React-Redux

发表于 2017-11-18 | 分类于 从0到1
React-Redux老赵(redux)能力用起来很麻烦,为了方便管理,使用魏和尚来负责连接 npm instal --save react-redux 忘记subscribe,记住reducer、action和dispatch即可 react-redux提供Provider和connect两个接口来连接 react-redux具体使用 Provider组件在应用最外层,传入store即可,只用一次 connect负责从外部获取组件需要的参数 connect可以用装饰器的方式来写 index.js文件:123456789101112131415import {Provider} from 'react-redux';// function render(){// ReactDom.render(<App store={store ...
阅读全文 »

Redux基础

发表于 2017-11-18 | 分类于 从0到1
Redux 基础redux 是什么 专注于状态管理,和react解耦 单一状态,单向数据流 核心概念:store、state、action、reducer 独立团项目:独立团逐渐发展,老李发现管不过来了 人少的时候,无论是兵器和人员的变更,都是setState 发展为千人大团后,老李决定,军事生活分开 所有的状态归赵政委(redux)管理,自己只打仗(view)显示 老赵(redux)主要功能: 老赵有一个保险箱(store),所有人的状态,在那里都有记录(state) 需要改变的时候,要告诉专员(dispatch)要干什么(action) 处理变化的人(reducer)拿到state和action,生成新的state 老赵(redux)的使用方法 首先通过reducer新建store,随时随地通过store.getState获取状态 需要状态变更,store.dispatch ...
阅读全文 »

React基础知识

发表于 2017-11-17 | 分类于 从0到1
react基础知识123456789101112131415161718192021222324import React from 'react';//定义一个 MyApp 组件class MyApp extends React.Component{ render(){ const boss = '校长' return ( <div> <h2>学校,{boss}</h2> <MyApp2></MyApp2> </div> ) }}//定义 MyApp2 组件给MyApp使用class MyApp2 extends React.Component{ render ...
阅读全文 »

Express+MongoDB

发表于 2017-11-17 | 分类于 从0到1
express 的使用12#安装 expressnpm install --save express 123456789101112131415const express = require('express');const app = express();//第一个参数是路径app.get('/',function(req,res){ res.send('Hello world')})// 大多数情况返回给前台的是JSON数据app.get('/data',function(req,res){ res.json({name:'Beme',age:'22'})})app.listen(3000,function(){ console.log("ok")}) app.get、app.post分别开发get和po ...
阅读全文 »
123…8
思齐

思齐

思与之齐

76 日志
13 分类
40 标签
GitHub 微博 S F 知乎
© 2016 - 2019 思齐
0%