gpt4 book ai didi

purescript - 在 Purescript 中去除缩进三引号字符串的边距?

转载 作者:行者123 更新时间:2023-12-04 15:53:58 25 4
gpt4 key购买 nike

当在缩进位置使用三引号时,我肯定也会在输出 js 字符串中缩进:

在嵌套的 let 中比较这两个

let input1 = "T1\nX55.555Y-44.444\nX52.324Y-40.386"
let input2 = """T1
X66.324Y-40.386
X52.324Y-40.386"""

给予

// single quotes with \n
"T1\x0aX55.555Y-44.444\x0aX52.324Y-40.386"

// triple quoted
"T1\x0a X66.324Y-40.386\x0a X52.324Y-40.386"

在 Scala 中是否有像 stripMargin 这样的约定,这样我就可以使用它们而不必取消缩进到顶层?

更新,只是为了澄清我的意思,我目前正在做的事情:

    describe "header" do
it "should parse example header" do
let input = """M48
;DRILL file {KiCad 4.0.7} date Wednesday, 31 January 2018 'AMt' 11:08:53
;FORMAT={-:-/ absolute / metric / decimal}
FMAT,2
METRIC,TZ
T1C0.300
T2C0.400
T3C0.600
T4C0.800
T5C1.000
T6C1.016
T7C3.400
%
"""
doesParse input header
describe "hole" do
it "should parse a simple hole" do
doesParse "X52.324Y-40.386" hole

更新:

我被要求澄清来自 Scala 的 stripMargin。它是这样使用的:

val speech = """T1
|X66.324Y-40.386
|X52.324Y-40.386""".stripMargin

然后删除前导空格。 stripMargin 可以采用任何分隔符,但默认为 |。

更多例子:

Rust 有 https://docs.rs/trim-margin/0.1.0/trim_margin/Kotlin 在 stdlib 中有:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/trim-margin.html

我猜这听起来像是要左垫 (:) ) 但如果已经有东西我宁愿不自己酿造它......

最佳答案

很抱歉您没有得到及时的回复,但我已经实现了这个功能here .如果拉取请求未合并,这里有一个仅依赖于 purescript-strings 的实现:

import Data.String (joinWith, split) as String
import Data.String.CodeUnits (drop, dropWhile) as String
import Data.String.Pattern (Pattern(..))

stripMargin :: String -> String
stripMargin =
let
lines = String.split (Pattern "\n")
unlines = String.joinWith "\n"
mapLines f = unlines <<< map f <<< lines
in
mapLines (String.drop 1 <<< String.dropWhile (_ /= '|'))

关于purescript - 在 Purescript 中去除缩进三引号字符串的边距?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52648205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com