https://firemiles-blog.oss-cn-shanghai.aliyuncs.com/blog-avator.png

golang的reflect使用

reflect 介绍

计算机科学中,反射(reflect) 指计算机程序在运行时(runtime)可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,反射就是程序在运行时能够“观察”并且修改自己的行为。

反射和内省(type introspection)不同,内省机制仅指程序在运行时对自身信息(称为元数据)的检测;反射机制不仅包括要能运行在对程序自身信息进行,还要能进一步根据这些信息改变程序状态或结构。

早期语言汇编包含反射能力,动态修改指令或对它们进行分析等等反射功能时很平常的。编程发展到如C语言等高抽象层次语言时,这种实践消失了,带有反射特性的高级编程语言要更晚出现。

golang 作为一个诞生较晚的现代语言,自然也支持反射能力。通过标准库 reflect 包我们可以使用 golang 提供的这个能力。

DHCP协议

协议说明

DHCP 协议(动态主机设定协定)是一个用于局域网的网络协议,位于TCP/IP的应用层,使用UDP协议工作,主要有两个用途:

  • 用于内部网络和网络服务商自动分配IP给用户
  • 用于内部网络管理员对所有电脑作中央管理

DHCP 用一台或一组DHCP服务器来管理网络参数的分配,这种分配方式具有容错性。即使在一个仅拥有少量机器的网络中,DHCP仍然是有用的,因为一台机器可以不造成任何影响的被加入到网路中。

甚至对于很少改变地址的服务器,DHCP仍然被建议用来设置它们的地址。如果服务器需要被重新分配地址,尽可能不改变之前的配置。对于一些设备,如路由器和防火墙,则不应该使用DHCP。

DHCP 于 1993 年10月成为标准协议,前身是 BOOTP (Bootstrap Protocol, 引导程序协议),DHCP 被设计成向前兼容 BOOTP 协议。当前的DHCP定义可以在RFC 2131找到,而基于IPv6的建议标准(DHCPv6)可以在RFC3315中找到。

具体数学-约瑟夫问题

引子

最近在读计算机经典教科书《具体数学》,作为一个非科班的计算机从业者,仿佛打开了新的天地,原来我刷题遇到的算法问题很多都可以用数学方法解决,原来数学不光是高数、线代和微积分三座大山,离散数学在计算机上是绝配。为记录学习过程中的心得并分享,故展开具体数学系列博客,望与有缘人分享这份知识的喜悦。

和《具体数学》的章节安排一样,本博客作为系列第一篇,主要讨论递归算法,从难易程度分成三个部分:河内塔平面上的直线约瑟夫问题。它们有两个共同的特征:一是都曾被数学家反复研究过;二是它们的解都用了 递归 的思想。

IPv6特性介绍

IPv6 概述 IPv6(互联网协议版本6)是一种新的寻址协议,旨在包含未来互联网的所有可能需求。 为什么是新的IP版本 到目前为止,IPv4已经证明自己