我正在尝试编写一个用于Rails项目国际化的YAML字典。但我有点困惑,因为在一些文件中,我看到字符串有双引号,而在一些文件中没有。有几点需要考虑。
!
- 的非特定标签,而第一个例子的最后两行没有--它们都能用。我的问题是:YAML中不同类型引号的使用规则是什么?
是否可以这样说。
!
用单引号,当...?经过对问题中引用的YAML烹饪书的简单回顾和一些测试,我的解释是这样的。
10
但你想让它返回一个字符串,而不是一个Fixnum,写上 '10'
或 "10"
.:
, {
, }
, [
, ]
, ,
, &
, *
, #
, ?
, |
, -
, <
, >
, =
, !
, %
, @
, \
).'\n'
会以字符串 \n
."\n"
将作为换行字符返回。!ruby/sym
来返回一个Ruby符号。在我看来,最好的方法是除非必要,否则不要使用引号,然后使用单引号,除非你特别想处理转义码。
更新
"Yes "和 "No "应该用引号括起来(单倍或双倍),否则会被解释为TrueClass和FalseClass值。
en:
yesno:
'yes': 'Yes'
'no': 'No'
我在做一个项目的时候就有这样的担心 轨 申请与 Docker.
我最喜欢的方法是,一般来说 不 使用引号。这包括 不 用引号表示。
${RAILS_ENV}
postgres-log:/var/log/postgresql
不过,我用双引号表示的是 integer
等需要转换为字符串的值。
version: "3.8"
"8080:8080"
然而,对于特殊情况,如 booleans
, floats
, integers
在其他情况下,使用双引号的条目值可能被解释为 strings
,请做 不 使用双引号。
下面是一个例子 docker-compose.yml
文件来解释这个概念。
version: "3"
services:
traefik:
image: traefik:v2.2.1
command:
- --api.insecure=true # Don't do that in production
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
就这样吧
希望对你有所帮助