如何用AI写编写代码

最近在写代码时,充分享受到了借助于AI来编写代码的好处。以下演示实例:因为历史的原因,需要用到Eclipse的SWT来写流程图的代码,但是国内基本上都是如何用JS来写代码,对于SWT的应用现在都非常有限。我们以前用SWT做的流程图,不能实现画虚线。比如两个节点之间,鼠标拖动时,实现一个虚线。我本人这方面的经验不足,就询问AI,看能否对我进行指导:我做了这样的询问: 我用zest来实现流程图。请实现节点间可以通过鼠标移动添加连线的功能,鼠标移动时可以显示虚拟的连线。AI做出如下的回答:在 Eclipse Zest 中实现通过鼠标移动添加连线并显示虚拟连线的功能,可以借助 Zest 和 Draw2D 的功能来实现。以下是实现步骤和示例代码:

  1. 创建 Zest 图表使用 Graph 组件作为主容器。
  2. 捕获鼠标事件监听鼠标按下、移动和释放事件,记录节点的起点和终点。
  3. 绘制虚拟连线使用 PolylineConnection 在鼠标移动时动态绘制虚拟连线。
  4. 添加连线当鼠标释放时,将虚拟连线替换为实际连线,并更新图表模型。

以下代码展示如何实现这个功能:

  1. 节点查找 (findNodeAt)通过鼠标坐标检查鼠标点击的节点。
  2. 临时连线创建 (createTemporaryConnection)创建虚拟连线并将其绘制在图层上。
  3. 动态更新连线 (updateTemporaryConnection)鼠标移动时更新连线的终点。
  4. 清理虚拟连线 (clearTemporaryConnection)在鼠标释放时移除虚拟连线。
  5. 添加实际连线鼠标释放时,如果目标节点存在且与起始节点不同,则创建实际的 GraphConnection。
  1. 用户按下鼠标选择起始节点。
  2. 鼠标拖动时显示虚拟连线。
  3. 鼠标释放后,如果释放位置在另一个节点上,则添加连线;否则取消连线。

此代码可以作为基础,根据需求扩展更多功能(如连接线样式、属性编辑等)。

想不到这么简单就完成了。这就是使用AI带来的开发效率。不过有担心了,程序员是否真的要失业了?

天下武功唯快不破:6种快速编写代码的方式

全文共1098字,预计学习时长5分钟

图源:unsplash

经过多年的发展,Swift如今也得到了许多人的青睐。它不仅提供类型安全性,而且比许多语言都简洁得多。它的功能在发展中不断增加,一定有很多你不知道的技巧隐藏其中。

本文我就将和大家分享一些Swift语言编写代码的方法,它们可以帮助你构建出更好的iOS应用。

在初始化时调用willSet和didSet

简而言之,就是第一次初始化属性时不会调用willSet和didSet属性观察器,但是可以通过将初始化包装在defer语句中来解决这个问题。

尽管有点笨拙,但是由于你不得不以某种方式设置默认值(在声明中或在外部defer中),掌握之后就会很快乐:

使用Maps安全打开选项

通常我们会使用if let或guardlet语法来安全地打开Swift中的选项,但有时我会想能不能有其他方法解决这个问题,尤其是在展开子属性时。我们的另一个选择是:使用map操作符打开选项。

只有当包含在map中的可选值包含某个值的时候才对其进行计算,从而确保其不为nil。

在可选的元组中,使用maps进行解包也很方便。用Swift语言可以进行这样的操作:

使用重新抛出进行强大的异常处理

想必大家对throws关键字都很熟悉用得也很多,但是Swift中的rethrows功能可能就不是常常会用到了。使用rethrows关键字声明的函数表示,只有当其函数参数之一throws时才会抛出错误。

也就是说,如果Closure参数没有引发错误,那么在调用它时我们无需使用其他try方法,这样一来就能大大减少样板代码。正如在下面的代码中看到的那样,我们不必将相同的不抛异常函数放入do-catch块中。

使用协议扩展进行默认实现

Swift协议功能强大,但它们不允许你指定默认实现。如果你想避免重写方法,这样做可能会非常方便。此外,你还可以使用扩展中的where子句仅为某些约束指定协议实现,但要确保自己不会在代码库中过度使用协议扩展。

轻松跟踪字典中的更改

如何进行Swift字典中的更改(可能是用于调试)?繁琐的方法是通过分散内容来实现,但是也有一种快速的方法,只需在保存该字典的对象上定义一个下标:

在不同场景使用guardlet

Guard let语句使用的是故障安全机制,其中nil值可确保您立即返回上一层。但在某些情况下,return并不是对我们最有利的方法。例如,你可能处于for循环中,只想要continue 或者 break,那么可以按照以下方式进行操作:

学会这些小技巧,去享受纵横驰骋的编码快乐吧。

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。