文档管理中心

对仓颉编程语言的一点期望

华为要出国产编程语言仓颉了!牛x

一、访问修饰符

写了十几年的代码,用过几种语言,Java最长。在对代码封装时,总是有一点遗憾:

Java访问修饰符:public、protected、default、private四种,如下类Class2,有四个方法

image.png

package1、package2,是同级包,package10、package11是package1下的同级包

我期望,Class2有个方法,Class1、Class3能调用(可见),Class8不能调用(不可见)

public 的testA(),Class1、Class3可见,Class8也可见

default 的testC(),仅Class3可见

testB(), testD(),一样都达不到这样的要求

二、为什么会有这样的需求呢?

 比如设计一个网络收发节点1

image.png

network1为上层包,下面分为 recv、send包,

Net1Manager类,统筹发送和接收,是网络节点1对外的门面,所有对网络节点1的操作,只能通过这个类,实现完美的封装、隔离、内聚。

Receiver类(接收器)、Sender类(发送器)在不同的子包。

image.png

 Sender类的sendData()方法,Net1Manager类是必须要调用的,所以只能是public而这就导致sendData()方法对网络节点2的Net2Manager类可见!这是不应该的!!!

三、建议

希望仓颉有一种修饰符,让那个方法包内可见、上层包可见,使得代码能封装得更好!

.net 的 internal 修饰符,有类似的功能,但是还是差点意思

点赞
2
收藏
2
回复
6
分享
举报
浏览2866 编辑于2021-11-22 06:50未知归属地
全部评论
最多点赞
最新发布
最早发布
希望像GO一样便捷,像rust一样无GC的所有权内存管理, 哪样必将火遍全世界 
8楼回复于2022-04-18 01:20 未知归属地

虽然我很希望仓颉是类似go,rust这种新生代语言,但我感觉它大概率会是类似java,c#这种语言,个人认为c#的语法最为优雅,rust的无gc高性能同时兼顾内存安全的特性最牛x,看着办吧!

7楼回复于2022-03-23 06:46 未知归属地
最好是函数式编程吧,偏ts的那种
6楼编辑于2022-03-20 02:19 未知归属地
开放报名试用,它那个报名是在哪里报名咧?
5楼回复于2022-03-18 05:40 未知归属地
楼主您好,感谢您的建议,已经反馈给研发。
4楼回复于2021-11-27 01:38 未知归属地
欢迎小伙伴们进来一起讨论
3楼回复于2021-11-22 06:53 未知归属地
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。