提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:鲍佳佳|2021-07-19 10:24:06.587|阅读 936 次
概述:PhpStorm 2021.1 测试版现已推出。我们正在为 PHP 中的泛型添加初步支持。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
PhpStorm 2021.2 测试版现已推出。我们正在为 PHP 中的泛型添加初步支持。
虽然泛型是PHP语言中最需要的功能之一,但根据JetBrains开发者生态系统的调查,在不久的将来,没有计划添加它们。
Nikita Popov研究了在PHP中这样做的可行性,甚至还做了一个PoC的原型。然而,他得出的结论是,所有各种可能的实现方式都有严重的问题。
从好的方面看,泛型已经被引入静态分析工具,如Psalm和PHPStan。它们的应用迅速增长,许多流行的开源PHP项目现在都依赖于泛型注释。因此,难怪 "WI-47158泛型支持与@template "票是PhpStorm问题跟踪器中被支持最多的票之一。
我们在PhpStorm 2020.3中引入了对Psalm和PHPStan的支持。这种支持带有@template注解的泛型的基本 "镜像 "方案。阅读更多关于PhpStorm对Psalm和PHPStan的支持。
使用@template 的
泛型的最流行的应用之一是集合。
在PhpStorm 2021.2中,你将能够使用泛型类集合。查看Brent Roose的《泛型和我们为什么需要它们》一文,了解更多关于这种方法比数组的优势。
简而言之,你可以得到更多的防错代码和更好的代码完成度。
下面是一个@template注释的集合类的简单例子。
使用Doctrine Collections,您已经可以在简单的场景中完成代码:
迭代 DoctrineCollection接口当前不起作用。因为为了支持这一点,应该实现两个级别的模板传递:Doctrine Collection=> IteratorAggregate。
因此,解决此问题的方法可能是在类型提示中使用特定集合,例如ArrayCollection. 使用这样的注释,您将能够在 foreach 循环中完成代码:
在PhpStorm中,你只能获得第一级泛型的类型推理和完成,即像Base<T>或Base<T1, T2>这样的泛型。对于这样的注解,PhpStorm 将理解 T 类型。
像Base<Child<T>>这样的嵌套泛型不被支持,并且在将来也可能不被支持,因为其性能开销很大。
@class-string<T>
泛型的另一个应用是容器和工厂。对于这样的代码,通常将类名字符串作为参数传递并作为结果接收对象。
如果您使用@class-string<T>标签注释某些参数,PhpStorm 将为您提供适当的类型推断:
事实上,如果您使用new运算符从参数实例化一个对象,则无需添加@class-string注释——它只是开箱即用:
模板继承
还支持扩展模板类的基本情况。为此,您可以使用@extends标签。
该@implements支持,但有当模板注释形成基地签名一个已知的问题是不能继承的。
我们正在逐步支持泛型。并计划继续这项工作。我们计划在未来的更新中添加一些已知功能缺失:
====================================================
想要了解或购买PhpStorm正版授权的朋友,欢迎
JetBrain技术交流群现已开通,QQ搜索群号“786598704”或者扫描下方二维码即可加入
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢