logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

仓颉的多线程

图八:未使用原子操作的情况,可能会出现线程对count的竞争,导致不同i的线程对相同的count进行自增,从而实际不足2000。图五:先执行Future.get(),就会先等子线程执行完成,再执行主线程了。调用get()时,程序阻塞主线程,等待该线程执行完成,同时获取其返回的值。图一:子线程还没执行,主线程就执行完成,子线程生命周期随之结束。图三、图四:会等待子线程执行完成,但子、主线程运行顺序不

文章图片
#仓颉
仓颉语言的设计模式--饿汉式单例

/ user设置为私有,createUser()在这是唯一的全局访问点。// 调用User的静态方法,将程序之初创建的user赋值给u1、u2。// 此处静态变量user为User对象,在程序运行之初创建。// 主构造函数不能访问,那么后续便不能再创建User对象。// 调用不是创建,运行结果只显示一次“创建了对象”// 意味着不管是否需要这个对象,他都会创建一个。// user是静态变量,只能用

文章图片
#设计模式#java#开发语言
仓颉的设计模式--工厂模式

如果商品除种类外还有一层相关性(如质量等级、系列、使用对象、工厂条件等等),需要在工厂类中对商品进行约束,而不是直接什么工厂就生产什么商品。删掉确实可运行,抽象方法默认是可被重写的,就写这个public func show(): Unit,不需要open。这里约束1级工厂生产1级商品A_1、B_1,2级工厂生产2级商品A_2、B_2。题外话: 这个框子看起来简约,但复制的代码有空格,上面的则没有。

文章图片
#设计模式#vscode#开发语言
仓颉的设计模式--代理模式

以喝酒为例,代理模式就是有一个间接对象来代替你执行喝酒这个操作,你说你可以喝那不算,我说你需要满足年龄大于18这个条件才能喝,那我就是这个间接对象。Drinker和它的代理DrinkerInBar都继承CanDrink,对抽象方法drink()进行相应的实现。DrinkerInBar的代理加强了对张三喝酒行为的控制。

文章图片
#设计模式#代理模式#开发语言 +1
仓颉的变量与数据类型

var quantity: Int16 = 0 //初值可有可无,类型要有。static var id: Int16 //静态元素必须要有。var g4 = 4..0//啥也没有。//可以有多个构造函数,但参数列表不能一样。//mut允许修改元素,且不用于静态元素。//静态函数,只操作静态元素。//init普通构造函数。Goods实例和函数调用。

文章图片
#vscode#开发语言
仓颉面向对象的封装、继承、多态、抽象

var base2: Root = Base("base2")//动态绑定(以Root为类型的对象=子类对象)println("这是一个父类对象"+value)//创建父类对象时执行。println("这是一个子类对象"+value)//创建子类对象时执行。println("这是一个子类对象"+value)//创建子类对象时执行。println("父类的静态构造函数")//优先执行。println

文章图片
#开发语言#vscode
仓颉鸿蒙创建Array引发的ArkUI的响应式机制限制

State修饰的变量在运行时被修改就会触发ArkUI的局部更新,当变量为Array类型时,修改某个数组元素并不会触发,只有修改这个变量本身才会。未用@State修饰,不管怎样修改其元素或是本身,不会更新UI。点击每个listitem单独变色,二次点击变为白色。

文章图片
#list
仓颉鸿蒙创建Array引发的ArkUI的响应式机制限制

State修饰的变量在运行时被修改就会触发ArkUI的局部更新,当变量为Array类型时,修改某个数组元素并不会触发,只有修改这个变量本身才会。未用@State修饰,不管怎样修改其元素或是本身,不会更新UI。点击每个listitem单独变色,二次点击变为白色。

文章图片
#list
到底了