Vala:陷阱、提示和技巧

2024-01-25

作为一名刚接触 Vala 的程序员,您对刚接触该语言的人的第一条建议是什么?


这很大程度上取决于您来自什么背景。如果您来自 C/C++/Java,最好的建议是学习函数式编程。 Vala 支持真正的闭包,因此您应该(深入)学习如何使用 lambda 表达式。最好的资源是 Abelson 和 Sussman 的《计算机程序的结构和解释》。多年来,它一直是 MIT 的计算机科学入门教材。可在网上免费获取http://mitpress.mit.edu/sicp/full-text/book/book.html http://mitpress.mit.edu/sicp/full-text/book/book.html,但纸质版本更具可读性。视频讲座可在http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/。习题集可在以下位置免费获取:http://icampustutor.csail.mit.edu/6.001-public/ http://icampustutor.csail.mit.edu/6.001-public/.

除此之外,我通常只是尝试学好 C# 编程风格。它与 Vala 类似,但有很多关于该主题的书籍。

渔获:

  • 请注意,Vala 没有垃圾收集功能。它进行引用计数。
  • 请注意,Vala 仍在开发中。它是一种相当新的语言,还没有达到 1.0。您现在编写的代码将来可能会崩溃。
  • 如果选择学习 Vala,请注意,就编程语言概念而言,它有点过时了。它对多核编程没有任何帮助。它不会做任何事情来帮助内存管理(代码性能主要基于缓存一致性——好的垃圾收集语言可以重新组织内存来帮助这里)。它是 C 的包装,并且具有许多 C 的限制(尽管它确实添加了闭包)。

另外,其中一张海报推荐了tinycc。对于开发来说这是一个合理的选择,但是您应该使用 gcc 等优化编译器(或者如果支持,则使用英特尔编译器)进行部署。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vala:陷阱、提示和技巧 的相关文章

  • 将一个符号向后排列,Haskell [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我如何将一个符号重新排列回来 我有一个给定的字符串 abcdpqrs 其中输出为 badcqpsr 我当前的代码 f s foldr a x

随机推荐

  • 100% 内存 HSQL 数据库

    我有一个 Java 应用程序设置为服务 每隔几个小时对大约 3GB 的数据进行数据挖掘 我希望这 100 发生在记忆中 理想情况下 我希望应用程序与所有事物隔离 我希望它构建数据库 进行我需要的挖掘 并在完成后拆除数据库 然而 对于 HSQ
  • 如何在单引号中使用 bash 变量

    我的 bash 代码如下 payload text failure with VAR failed for 但变量未解析为实际值 请不要给出否定 因为我在 Bash 方面没有太多经验 变量不会在单引号中扩展 这意味着您只需确保它们不是单引号
  • MKMapView 完全缩小时的缩放问题

    我通过单击按钮缩小地图 因此 当地图完全缩小时 如果我尝试再次缩小它 那么它在设置区域时会崩溃 不确定 但是有什么方法可以检测地图是否达到最大缩放限制吗 这是我缩小地图的代码 void setZoomLevelForNoPicksCurre
  • AJAX、PHP 会话和同时请求[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我就直接进入正题吧 当用户提交搜索时
  • 我在 env 渲染中遇到错误 - env.render()

    我试图在渲染时实现 Atari Games 但出现如下错误 line 283 in render raise error Error gym error Error render mode human is deprecated Pleas
  • 网络表单中的构造函数?

    我有一个 ASP NET Web 表单 我在其中初始化一个数组 其中包含页面上的控件列表 如下所示 FileUpload 4 new FileUpload 4 public myclass fileUpload 0 FileUpload1
  • PyCharm 中“没有名为管理的模块”

    我在使用 PyCharm 时遇到问题 当我单击 工具 中的 运行 Django 控制台 或 运行管理 py 任务 时 我得到 Traceback most recent call last File
  • 为iPhone 5创建opencv相机矩阵solvepnp

    我正在使用 opencv 为 iPhone 开发一个应用程序 我必须使用方法solvePnPRansac http opencv willowgarage com documentation cpp camera calibration a
  • 即使使用动态高度网站,如何将页脚保持在底部

    当我有一个使用 CSS 动态设置高度 例如从数据库获取信息 的页面时 如何将页脚 div 始终保持在窗口底部 如果你想使用 jQuery 我想出了这个并且工作得很好 设置页脚的 CSS footer position absolute wi
  • 将 props 传递到 React 组件

    我刚刚开始学习 React 正在创建组件并将 props 传递给它们 我是否必须在下面的示例中引用 JSX 元素中的 props 我已经看到过引用 props 和未引用 props 的示例 并且这两个选项似乎都有效 const name J
  • 如何获得可靠的 Cortex M4 短延迟

    我正在将一些代码从 M3 移植到 M4 它使用 3 个 NOP 在串行输出时钟更改之间提供非常短的延迟 M3指令集将NOP的时间定义为1个周期 我注意到 M4 中的 NOP 并不一定会延迟任何时间 我知道我需要禁用编译器优化 但我正在寻找一
  • 如何使用 Handlebars.js 将字段小写?

    我想做这样的事情 user name toLowerCase 但我收到此错误 Error Parse error on line X tatus user name toLowerCase gt Expecting ID got undef
  • 如何使输入可观察?

    我有一个带有一些输入的组件 我希望在它发生更改时收到通知 我目前通过实施来使其工作ngOnChanges并找出哪个输入被更改 但是 我更愿意将输入声明设置为 Input select values selectValues Observab
  • For 循环范围必须有一个“iterator()”方法

    我遇到了这个奇怪的错误 val limit Int applicationContext resources getInteger R integer popupPlayerAnimationTime for i in limit 我找到了
  • 如何以编程方式添加多列 ListViewItem 而无需任何数据绑定?

    我有一个带有 3 个标头的 ListView 在 XAML 中声明如下
  • Mono 运行时的局限性

    我的问题类似于this one https stackoverflow com questions 802559 limitations in mono for a net framework developer and this one
  • 将 Chart JS 2 上的条形图扩展为新型图表

    我实际上正在使用 Chart JS 2 0 1 在页面上绘制图表 我的客户要求我在条形图中添加一条线 以便他们可以看到他们不能超过的限制 像那样 y 轴上有线条的条形图 https i stack imgur com 5XJO4 png 因
  • 使用 Apache POI 合并 Excel 中的单元格

    还有其他方法可以使用 Apache POI 库合并 Excel 中的单元格吗 我正在尝试使用以下内容 但它不起作用 selecting the region in Worksheet for merging data CellRangeAd
  • Boost Hana :将 Hana 类型转换为 std::string

    是否存在用于编译时转换 a 成员类型的 Boost Hana 方法Struct类型名的 std string 的 STL 容器的概念 例如 MyType t std array
  • Vala:陷阱、提示和技巧

    作为一名刚接触 Vala 的程序员 您对刚接触该语言的人的第一条建议是什么 这很大程度上取决于您来自什么背景 如果您来自 C C Java 最好的建议是学习函数式编程 Vala 支持真正的闭包 因此您应该 深入 学习如何使用 lambda