当前位置: 首页 > news >正文

跟我一起学“仓颉”编程语言-泛型练习题

一、练习题

1. 定义一个三角形类,实现Equatable<T>接口,如果两个三角形的对应三边相等,则证明这两个三角形全等,否则这两个三角形不全等。

package Study class Triangle <: Equatable<Triangle> { Triangle(var side1: Int64, var side2: Int64, var side3: Int64) {} private func isSidesEqual(triangle: Triangle) { let flag1 = this.side1 == triangle.side1 || this.side1 == triangle.side2 || this.side1 == triangle.side3 let flag2 = this.side2 == triangle.side1 || this.side2 == triangle.side2 || this.side2 == triangle.side3 let flag3 = this.side3 == triangle.side1 || this.side3 == triangle.side2 || this.side3 == triangle.side3 if (flag1 == true && flag2 == true && flag3 == true) { true } else { false } } public override operator func ==(triangle: Triangle) { this.isSidesEqual(triangle) == triangle.isSidesEqual(this) } public override operator func !=(triangle: Triangle) { this.isSidesEqual(triangle) != triangle.isSidesEqual(this) } } main() { let triangle1 = Triangle(3, 4, 5) let triangle2 = Triangle(4, 3, 5) let triangle3 = Triangle(4, 4, 4) println(triangle1 == triangle2) println(triangle2 == triangle3) println(triangle1 != triangle2) }

2. 定义泛型枚举,使用泛型约束,解构Color枚举的值。

package Study enum Color<T> where T <: ToString { Red(T) | Blue(T) | Green(T) | Gray(T) | Pink(T) | Black(T) func getColor() { match (this) { case Red(value) => println("${value}") case Blue(value) => println("${value}") case Green(value) => println("${value}") case Gray(value) => println("${value}") case Pink(value) => println("${value}") case Black(value) => println("${value}") } } } main() { let red = Color.Red("红色") red.getColor() let pink = Color.Pink("粉色") pink.getColor() let black = Color.Black(0x000000) black.getColor() }

3. 定义一个坐标点类(Point),坐标的描述可以用实数描述,也可以用字符串描述。

package Study class Point<T> where T <: ToString { Point(private var _x: T, private var _y: T) {} mut prop x: T { get() { this._x } set(_x) { this._x = _x } } mut prop y: T { get() { this._y } set(_y) { this._y = _y } } func getPoint() { println("X坐标: ${this._x}, Y坐标: ${this._y}") } } main() { let point1 = Point<String>("东经100°" , "北纬20°") point1.getPoint() let point2 = Point<Float64>(34.6, 78.9) point2.getPoint() }

二、小结

本章为大家详细的介绍了仓颉编程语言中泛型练习题的内容,下一章,为大家带来Array数组的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉服务端开发有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

http://www.jsqmd.com/news/976379/

相关文章:

  • 智能语音音乐管家:XiaoMusic如何让小爱音箱变身专业级音乐服务器
  • 主治医师备考课程怎么选?阿虎医考四阶段课程体系全解读 - 医考机构品牌测评专家
  • Vazirmatn字体深度解析:3个关键步骤让波斯语设计更专业
  • GitHub Desktop中文汉化终极指南:3分钟快速搞定免费汉化
  • 2026年6月7日科技热点新闻
  • 如何在JavaScript应用中高效计算太阳和月亮位置?SunCalc完整指南
  • PyWren完全指南:如何利用云服务实现高效并行计算
  • 寄快递上门取件,哪个最便宜?2026实测对比 - 快递物流资讯
  • Mythos能力门控解析:大模型推理深度与多文档验证的工程化落地
  • 从S盒到轮密钥:一步步图解SM4算法在C语言中的核心实现(附调试技巧)
  • 厌倦了单调的macOS光标?用Mousecape打造个性化桌面体验的3个实用场景
  • 深入Keil C51:巧用data、xdata和code关键字优化你的51单片机项目内存
  • MC9328MX1 SDRAM控制器驱动美光SyncFlash实战指南
  • 终极歌词批量提取方案:一键同步网易云QQ音乐LRC文件
  • 3个技巧让中文文献管理效率翻倍:Jasminum插件深度指南
  • GetQzonehistory:5分钟永久备份QQ空间所有历史记忆的终极方案
  • 3个关键步骤:让普通鼠标在macOS上获得专业级体验
  • 2026 年狗狗驱虫药排行榜:TOP5 排名独家揭秘 - 思溯深度专栏
  • 2026年老面小笼包面粉哪家稳:五家优选品牌对比解析 - 科技焦点
  • 2026年除氧器厂家推荐排行榜:电化学除氧器/真空化学除氧器/解析除氧器/供热管网与锅炉除氧器实力品牌精选! - 企业推荐官【官方】
  • 跟我一起学“仓颉”编程语言-Array数组
  • 丽水黄金回收怎么选?正规回收渠道助力闲置黄金高效变现 - 润富黄金回收
  • WiVRn日志分析:调试与解决流式传输问题的实用技巧
  • 免费视频防抖神器:用Gyroflow消除画面抖动的完整指南
  • 解决过拟合问题:two-stream-action-recognition数据增强技术全解析
  • Rufus:免费USB启动盘制作神器,3分钟搞定Windows 11安装
  • Czkawka终极指南:三步快速清理重复文件释放存储空间
  • 探索Video2X:AI视频超分辨率与帧插值的深度实践指南
  • 别墅电梯怎么选?山东业主真实体验:12年本土品牌金牛电梯值得信赖 - 中媒介
  • 国内商用UV平板打印机品牌排行 - 奔跑123