当前位置: 首页 > 面试题库 >

在if-case中,大小写如何运作

白才捷
2023-03-14
问题内容

老的C程序员可以在Swift上使用一些帮助。

我对if-case语法不了解。例如:

if case 20...30 = age {
   print ("in range.")
}

case 20...30 = age似乎是在条件测试if语句。因此,最初让我感到困惑的是看到使用赋值运算符(’=’)而不是比较运算符(’==’)。

好的,我想自己,这可能意味着该case语句实际上是一个返回布尔值的函数调用。然后,返回的值将满足if语句中的比较测试。

作为实验,我尝试将case语句像常规条件测试一样对待,并在其周围加上括号。斯威夫特乐于接受if (x == 5)if (true)。但是会if (case 20...30 = age)产生一个错误。因此,该case语句的行为似乎不像函数。

我只是想了解这里发生的事情。任何见识将不胜感激。


问题答案:

运算符是if case,因此您不能放在括号中。语法和行为基于caseSwift
switch语句中的语句和语法(如果需要详细信息,请参阅我的在线书)。在case语句中,20...30是一个间隔,用作
模式
,通过contains对间隔进行操作。等号确实确实令人困惑,但这是他们首次尝试使用一种语法来表达该case语句应与之进行比较(即,语句中关键字后面的
标记 )。switch``switch


因此,如果您了解这一点:

switch age {
case 20...30:
    // do stuff
default:break
}

…然后您就会了解它是如何直接变形为以下形式的:

if case 20...30 = age {
   // do stuff
}


 类似资料:
  • 问题内容: 如果一个月的大写或小写(即不是标题),则DateTimeFormatter无法解析日期。有没有简单的方法可以将日期转换为标题大小写,还是可以使格式化程序更宽松? 版画 问题答案: s是严格的,默认情况下区分大小写。使用和指定以区分大小写。 为了能够解析数字月份(即),您还需要指定。 您也可以更冗长地指定仅月份部分为不区分大小写/宽大: 从理论上讲,这可能会更快,但我不确定是否可以。 P

  • 问题内容: 我想更改一个字符串,以使所有大写字母变为小写,并且所有小写字母变为大写。数字字符将被忽略。 因此“ AbCdE123”成为“ aBcDe123” 我猜应该有一种方法可以遍历String并翻转每个字符,或者某些可以完成此操作的正则表达式。 问题答案: 我不相信有任何内置功能可以做到这一点(这是相对不常见的)。不过应该这样做: 请注意,这不会像String.toUpperCase / St

  • 问题内容: 我正在尝试在MySQL中建立查询,在该查询中我具有某种数字的库存水平,并且取决于该库存水平,我希望它返回另一个值,该值将是颜色代码。 例如,如果库存水平<0,则为空;如果库存水平在0至1000之间,则为红色;如果库存水平在1000至5000之间,则为黄色;如果库存水平在5000至10000之间,则为绿色;如果库存水平> 10000,则为空。绿色。 所以这是我的例子。我有一个Beer表,

  • 我有两个问题。 ①当useState初始值真假时,if语句如何适应下面? 比如说。。 ②当if语句为true和false时,如何使setGoodBotton从React钩子和if语句适应下面? 例如…(这不是工作)

  • 问题内容: 我想知道是否有一种方法可以在java switch case语句中执行不区分大小写的匹配。默认实现 区分大小写 。请参见下面的示例。 因此,以上语句作为输出返回。而且我正在尝试使其像 不区分大小写的 匹配一样工作。我尝试将字符串文字都转换为小写,然后进行比较。但无法做到。 问题答案: 如果要这样做:只需确保输入数据全部为小写,并使用小写… 本地化问题 同样,古老的本地化问题再次引起人们

  • 我正在尝试检查我的VO中设置了哪些值。 下面是我的女儿。我得到的是“合格的病例标签MyEnum.UserType.Doctors必须替换为不合格的枚举常量Doctors” EnumTest.java