恋恋风辰的个人博客


  • Home

  • Archives

  • Categories

  • Tags

  • Search

不推荐新手的编程语言,你中枪了吗

Posted on 2019-10-31 | In 生活感悟

TIOBE 编程语言排名前20

随着时代的发展,编程语言日益丰富。诚然,熟练掌握多门编程语言是很多开发者梦寐以求的事,不过人的精力有限,要有选择性的学习。最好是能够结合自己的工作或者爱好有针对性的训练和学习。语言只是工具,但是这些工具的应用场景不尽相同。下图为TIOBE 2019年9月统计的编程语言排名

Read more »

区块链,并不是想象的那么乐观

Posted on 2019-10-29 | In 区块链

区块链现状

“新华社北京10月25日电,区块链技术的集成应用在新的技术革新和产业变革中起着重要作用。我们要把区块链作为核心技术自主创新的重要突破口,明确主
攻方向,加大投入力度,着力攻克一批关键核心技术,加快推动区块链技术和产业创新发展。”目前国家比较重视区块链技术的自主创新,而且也明鼓励技术突破。而且我国成为了首个发行数字货币的国家。DCEP(Digital Currency Electronic Payment),是中国人民银行研发的电子货币。有利于人民币的流通和国际化。同时DCEP可以实现货币创造、记账、流动等数据的实时采集。
最近随着国家对区块链技术的重视,不少虚拟货币也随之增值

Read more »

python学习(28) Tinker+BeautifulSoup+Request抓取美女壁纸

Posted on 2019-10-22 | In python

抓取准备

今天是10月24日,祝所有程序员节日快乐。今天打算写个爬虫抓取3DMGAME论坛美女cosplay壁纸。
论坛首页网址为https://www.3dmgame.com/tu_53_1/
我们点击其中一个图集,然后网页跳转,看下源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<div class="dg-wrapper">
<a data-src = "/uploads/images/thumbpicfirst/20190730/1564452665_126346.jpg">
<div class="img"><img src="https://img.3dmgame.com/uploads/images/thumbpicfirst/20190730/1564452665_126346.jpg"></div>
<div class="miaoshu">
<p></p>
<div class="num"><i></i> /<u></u></div>
</div>
</a>
<a data-src = "/uploads/images/thumbpicfirst/20190730/1564452665_242197.jpg">
<div class="img"><img src="https://img.3dmgame.com/uploads/images/thumbpicfirst/20190730/1564452665_242197.jpg"></div>
<div class="miaoshu">
<p></p>
<div class="num"><i></i> /<u></u></div>
</div>
</a>

网址是静态的,我们直接提取其中的图片链接再下载即可。
抓取网页采用的是python的requests库,直接发送http请求即可。收到回包后,通过BeautifulSoup提炼其中图片地址再次下载即可。
另外我们的界面用的是python自带的Tinker编写的。

Read more »

Go进阶篇(02) 反射用法详解

Posted on 2019-10-14 | In golang

反射是什么

反射其实就是通过变量动态获取其值和类型的一种技术,有些语言是支持反射的比如python, golang,有些是不支持反射的比如C++
前文我们分析过interface的结构,无论空接口还是有方法的接口,其内部都包含type和value两个类型,type指向了变量实际的类型
value指向了变量实际的值。而反射就是获取这两个类型的数据。
golang总类型分为包括 static type和concrete type. 简单来说 static type是你在编码是看见的类型(如int、string),
concrete type是runtime系统看见的类型
反射只能作用于interface{}类型,interface{}类型时concrete类型
下面介绍golang反射的基本用法

reflect.ValueOf与reflect.TypeOf

1
2
3
4
5
6
7
8
   var num float64 = 13.14
rtype := reflect.TypeOf(num)
fmt.Println("reflect type is ", rtype)
rvalue := reflect.ValueOf(num)
fmt.Println("reflect value is ", rvalue)
fmt.Println("reflect value kind is", rvalue.Kind())
fmt.Println("reflect type kind is", rtype.Kind())
fmt.Println("reflect value type is", rvalue.Type())

golang 提供了反射功能的包reflect, reflect中ValueOf能够将变量转化为reflect.Value类型,reflect.TypeOf可以将变量
转化为reflect.Type类型。

Read more »

Go进阶篇(01) interface应用和复习

Posted on 2019-10-11 | In golang

interface 意义?

golang 为什么要创造interface这种机制呢?我个人认为最主要的就是做约束,定义一种规范,大家可以按照同一种规范实现各自的功能,从而实现多态。
同时当interface做函数形参,可以很好地限制传入参数,并且根据不同的实参调用达到多态的效果。多态的意思就是多种多样的功能,比如我们定义了一
个接口

1
2
3
4
type IOInter interface{
write()int
read()int
}

定义了一个IOInter的接口,只要别人实现了write和read方法,都可以转化为这个接口。至于具体怎么读,读什么,网络IO还是文件IO取决于具体的实现,
这就形成了多样化的功能,从而实现多态。同时IOInter做函数的形参,

1
2
3
func WriteFunc(io IOInter){
io.Write()
}
Read more »

golang 接口内部实现

Posted on 2019-09-24 | In golang

前文介绍过golang interface用法,本文详细剖析interface内部实现和细节。

empty interface实现细节

interface底层使用两种类型实现的,一个是eface,一个是iface。当interface中没有方法的时候,底层是通过eface实现的。
当interface包含方法时,那么它的底层是通过iface实现的。
对于iface和eface具体实现在go源码runtime2.go中,我们看下源码

Read more »

golang接口

Posted on 2019-09-12 | In golang

接口简介

golang 中接口是常用的数据结构,接口可以实现like的功能。什么叫like呢?
比如麻雀会飞,老鹰会飞,他们都是鸟,鸟有翅膀可以飞。飞机也可以飞,
飞机就是像鸟一样,like bird, 所以我们可以说飞机,气球,苍蝇都像鸟一样可以飞翔。
但他们不是鸟,那么对比继承的关系,老鹰继承自鸟类,它也会飞,但他是鸟。
先看一个接口定义

1
2
3
type Bird interface {
Fly() string
}

定义了一个Bird类型的interface, 内部生命了一个Fly方法,参数为空,返回值为string。
接口声明方法和struct不同,接口的方法写在interface中,并且不能包含func和具体实现。
另外interface内部不能声明成员变量。
下面去实现蝴蝶类和飞机类,实现like-bird的功能。像鸟一样飞。

Read more »

golang结构体

Posted on 2019-09-11 | In golang

golang支持面向对象的设计,一般支持面向对象的语言都会有class的设计,但是golang没有class关键字,只有struct结构体。通过结构体达到类的效果,这叫做大成若缺,其用不弊。

struct简介

在使用struct之前,先介绍golang的一个特性,golang允许用户将类型A定义为另一种类型B,并为类型B添加方法。

1
2
3
4
type Integer int 
func (a Integer) Less (b Integer) bool{
return a < b
}
Read more »

golang 函数介绍

Posted on 2019-09-11 | In golang

函数简介

函数是编程语言中不可缺少的部分,在golang这门语言中函数是一等公民。也是使用好golang的必备技能。
看下golang函数的格式

1
2
3
func 函数名(函数参数)返回值类型{

}

一个简单的函数

1
2
3
func HelloFunc(str string) string{
return str
}

该函数返回传入的字符串,函数调用如下

1
fmt.Println(Hello("Nice to meet you!"))
Read more »

golang 使用etcd

Posted on 2019-08-29 | In golang

etcd 安装和配置

下载etcd release版本:https://github.com/coreos/etcd/releases/
我的是windows版本,下载win64的就行了,下载后进入文件夹,建立几个配置文件启动就行了,可以写yml文件,我是windows的就做成了bat命令。
一般是一个节点对应一个配置,一个节点的配置如下
yml文件版本

1
2
3
4
5
6
7
8
9
name: etcd-1
data-dir: .\data\etcd01
advertise-client-urls: http://127.0.0.1:2379
listen-client-urls: http://127.0.0.1:2379
listen-peer-urls: http://127.0.0.1:2380
initial-advertise-peer-urls: http://127.0.0.1:2380
initial-cluster-token: etcd-cluster-1
initial-cluster: etcd01=http://127.0.0.1:2380,etcd02=http://127.0.0.1:2381,etcd03=http://127.0.0.1:2382 ^
initial-cluster-state: new
Read more »
<1…252627…37>

370 posts
17 categories
21 tags
RSS
GitHub ZhiHu
© 2025 恋恋风辰 本站总访问量次 | 本站访客数人
Powered by Hexo
|
Theme — NexT.Muse v5.1.3