Вложенные кавычки в строке с OCaml? - PullRequest
1 голос
/ 03 августа 2020

Я пытался передать строку в качестве аргумента с двойными кавычками. Например, я хочу, чтобы на входе была строка, в которой говорится, что я программирую в «OCaml»:

"I am programming in "OCaml""

Это то, что я хочу передать. Я попытался использовать некоторые лексические соглашения, но безуспешно. Я не хочу менять кавычки вокруг OCaml.

Я пробовал

"\"I am programming in "OCaml"\"

И несколько вариантов этого. Есть какие-нибудь советы, как его пройти?

Ответы [ 2 ]

7 голосов
/ 03 августа 2020

Вы должны избегать кавычек внутри строки, как и любого другого символа, который требует экранирования, а не самих разделителей:

"I am programming in \"OCaml\""

В качестве альтернативы вы можете использовать строку в кавычках, который не требует (или разрешает) экранирование и может быть ближе к тому, что вы пытались сделать:

{|I am programming in "OCaml"|}

Подробнее см. в разделе строковых литералов в руководстве OCaml .

1 голос
/ 03 августа 2020

Вот пара буквальных строк, содержащих двойные кавычки:

"I am programming in \"OCaml\""
{|I am programming "OCaml"|}
...