在C / C ++(以及该家族的许多语言)中,根据条件声明和初始化变量的常见用法使用三元条件运算符: int index = val > 0 ? val : -val Go没有条件运算符。实现与上述相同代码的最惯用方式是什么?我来到以下解决方案,但似乎很冗长 var index int if val > 0 { index = val } else { index = -val } 有更好的东西吗?
我到处都读到,三元运算符应该比其等效的if- else块更快,或至少相同。 但是,我进行了以下测试,发现情况并非如此: Random r = new Random(); int[] array = new int[20000000]; for(int i = 0; i < array.Length; i++) { array[i] = r.Next(int.MinValue, int.MaxValue); } Array.Sort(array); long value = 0; DateTime begin = DateTime.UtcNow; foreach (int i in array) { if (i > 0) { value += 2; …