小编Fel*_*lis的帖子

sizeof(arr)/ sizeof(arr [0])如何工作?

在for循环中查找数组的大小时,我看到人们在写

int arr[10];
for(int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++){}
Run Code Online (Sandbox Code Playgroud)

sizeof(arr) / sizeof(arr[0])阵列的长度如何?它在技术上如何工作?

c++ sizeof

28
推荐指数
4
解决办法
5万
查看次数

检查 Scala 中匹配表达式中的两个特定异常

所以我在 Scala 中有一个 Try 块

  def fromString(s: String): Option[Pitch] = scala.util.Try {
    val (pitchClassName, octaveName) = s.partition(c => !c.isDigit)
    val octave = if octaveName.nonEmpty then octaveName.toInt else 5
    Pitch(pitchClassIndex(pitchClassName) + octave  * 12)
  } match {
    case scala.util.Success(value) => Some(value)
    case scala.util.Failure(e) => 
    case scala.util.Failure(e) => throw e
  }
Run Code Online (Sandbox Code Playgroud)

现在,我知道这里有很多代码需要解释。为了这个问题的目的,需要知道的是:

当使用给定音符(如“D#4”)创建 Pitch 实例时,可能有两个我想要专门处理的不同异常。第一个是如果映射的pitchClassIndex 找不到给定的键pitchClassName,第二个是如果Pitch 参数超出给定范围。

音高等级索引:

val pitchClassIndex: Map[String, Int] = pitchClassNames.zipWithIndex.toMap
Run Code Online (Sandbox Code Playgroud)

音调类别名称:

val pitchClassNames: Vector[String] = Vector("C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B") …
Run Code Online (Sandbox Code Playgroud)

scala exception pattern-matching

0
推荐指数
1
解决办法
401
查看次数

标签 统计

c++ ×1

exception ×1

pattern-matching ×1

scala ×1

sizeof ×1