0

语言 BSL - DrRacket(球拍变体)

问题:我需要了解下面的函数到底是做什么的。特别是子字符串位,我不明白它如何确定字符串是否具有“?” 最后选择是否附加“?” 到消费的字符串。

(define (ensure-question str)
  (if (string=? (substring str (- (string-length str) 1)) "?")
      str
      (string-append str "?")))
4

1 回答 1

2

(substring s position)s函数从某个位置返回字符串的子字符串。例如: (substring "Apple" 1)返回"pple",因为我们从第一个字符中取下标。

(substring "Apple" ( - (string-length "Apple") 1))

将返回"e"

我们正在使用仅包含最后一个字符的下标并使用 function(- (string-length str) 1))检查它是否等于。"?"string=?

于 2015-08-25T20:44:00.310 回答