同一件事各语言怎么写:Rosetta Code 摆出来对照

想知道一个操作在别的语言里怎么写,搜出来往往是零散博客,语言之间也没法放在一起比。Rosetta Code 把同一道任务的实现按语言平铺在同一页里,哪门语言怎么写一眼能对上,它不判题不发证书,就是一个拿来对照的代码库。
它解决什么问题
想看看某个操作在不熟悉的语言里怎么写,搜到的答案零散,语言之间也没法横向比较。
教材只给一种语言的示例,看不出同一个思路换门语言以后会变成什么样子。
核心能力
| 能力 | 具体能做到什么 |
|---|---|
| 以任务为单位 | 每个条目是一道具体任务,同一页里按语言列出各家实现 |
| 语言覆盖广 | 常见语言之外,不少小众语言也能找到条目 |
| 可直接读码 | 实现按语言分段排列,横向对照很方便 |
| 社区编纂 | 由志愿者持续补充条目与实现,也可提交自己的写法 |
| 任务类型杂 | 既有字符串处理这类小题,也有算法与文本分析类任务 |
| 免费阅读 | 不需要注册,打开页面就能查 |

挑一道任务,横向比三个语言
用法很简单:先在站内搜任务名或关键词,找到条目后把页面拉到语言目录,先读自己熟悉的那门语言的实现,再挑一门正在学的对照着看。重点不是把代码抄下来,而是比较同一件事在不同语言里的写法差别:循环怎么写、集合用什么类型、字符串怎么处理、有没有现成的标准库函数。这类差别看得多了,换语言时心里就有底,不至于每次都从零摸索。
要有心理准备的是,条目质量并不整齐。同一道任务在不同语言下,有的实现只有几行,有的写了几十行还没注释,这跟贡献者的水平和提交时间有关。它也没有在线判题,代码对不对得自己复制到本地跑一遍才算数。把它当对照读物而不是权威答案,遇到和官方文档不一致的写法,还是以语言官方文档为准。
同类工具怎么选
| 工具 | 授权 | 差别在哪 |
|---|---|---|
| The Algorithms | 开源免费 | 按算法组织多语言实现,适合查标准写法而非某道具体任务 |
| Learn X in Y Minutes | 开源免费 | 一页扫完一门语言的语法,偏整体语言概览而非任务对照 |
| Go by Example | 开源免费 | 以示例讲单一语言的常见写法,深度比跨语言对照更足 |
谁适合用
- 需要在多门语言之间切换、想快速看对照写法的开发者
- 刚学新语言、想知道常用操作的标准写法的人
- 编程课老师,要给同一道题找不同语言的示例
怎么开始
- 打开 rosettacode.org,在搜索框里输入任务名或关键词。
- 进入条目页后先读任务描述,弄清要求和边界。
- 在页面的语言目录里跳到熟悉的那一门,读它的实现。
- 再挑一门想学的语言,对照同一位置的写法比差别。
- 想补充时按站点的编辑规范,把实现提交到对应条目。
常见问题
这里有在线判题吗?
没有。它是 wiki 式的实现对照库,只展示代码,不判分也不排名。
能自己提交实现吗?
可以。站点开放编辑,注册后按条目的格式补充即可。
有中文内容吗?
以英文为主,个别条目可能有其他语言的说明,是否包含中文以站点实际为准。
适合零基础吗?
不太适合。它默认你已经会至少一门语言,能读懂代码。
授权与合规
站点以社区 wiki 的方式维护,任务条目与各语言的实现代码按开放许可协议发布,免费阅读也允许转载。 官网:rosettacode.org。
继续找同类资源
这条属于「学习资料」栏目,同栏目还有更多可直接使用的免费资源,可以在 学习资料全部资源 里按需翻阅。
相关资源
同栏目下这几条也常被一起翻到:
↓ 获取资源
点击按钮直接前往资源页面。