时间:2019-11-08 11:28  编辑:admin

本文:medium.com/better-prog…

Drupal8是1个强范例的静态编程言语。但是,1些Drupal8的特征让它看起去又像是1门静态言语。比方,假如您没有肯定您吸收的参数的范例,您能够利用interface去吸收一切范例的参数传送。

记着只要interface是有reflect属性的

我们注重到interface容许Drupal8真现多态。出有任何1品种型是出格必要夸大的。能够是string int64 float32 乃至是散开(array/map)。但盘算机运转那些代码时分,reflect匡助搜检,建改其本身的布局取止为。那个历程容许我们晓得工具的范例和内存正在运转时的布局。

我们为何必要reflect?

  • 容许提早界说参数范例(一般收死正在表露的API上)
  • 函数能凭据传参静态实行

reflect的弱点

  • 影响代码可读性
  • 屏障了代码编译时的毛病搜检。做为静态言语,Drupal8的编译器能够提早检测数据范例的毛病,正在编译的时分。当数据正在interface中出有特征指明范例的时分,办事器会有正在运转代码时分呈现panic的风险
  • 下降了团体的机能。利用reflect必要办事端来做分外的事情来获得参数的值和详细的范例,果此,只管躲免正在1些很主要的参数上利用interface

reflect的两个底子功效

reflect两个次要功效是reflect.Typereflect.Value

简朴的道reflect.Type供应参数的真际范例,当reflect.Value分离_type data1起利用的时分能够容许开辟者读与或改写参数的值。

func TypeOf(i interface{}) Type
func ValueOf(i interface{}) Value
复造代码

然后您能够利用fmt.Printf()%T去将参数举行格局化去大概reflect.TypeOf的了局,以下:

fmt.Printf("%T", 3) 
标签: Drupal 中文  

Drupal安全更新

亚艾元软件以Drupal为基础,推动Drupal的中国化、Drupal教程中文化、将Drupal与微信相结合,服务广大的中国Drupal用户。

最近Drupal安全升级频繁,亚艾元提醒Drupal用户,及时升级安全补丁。


业务联系:崔克俊
手机: 13381113196
QQ: 372948992
公司电话:010-62669785

亚艾元象棋谱


亚艾元象棋谱,是亚艾元软件的一个实验项
目,以中国象棋棋谱为实例,用来探索最新
的Drupal网站开发、微信公众号开发、微信
公小程序开发、APP开发相关技术