标签: var

切换与var/null奇怪的行为

给出以下代码:

string someString = null;
switch (someString)
{
    case string s:
        Console.WriteLine("string s");
        break;
    case var o:
        Console.WriteLine("var o");
        break;
    default:
        Console.WriteLine("default");
        break;
}
Run Code Online (Sandbox Code Playgroud)

为什么switch语句匹配case var o

因为(有效地)评估为false case string s,s == null所以我的理解不匹配(null as string) != null.VS Code上的IntelliSense告诉我这o也是一个string.有什么想法吗?


类似于:C#7切换案例,带有空检查

c# null var switch-statement c#-7.0

90
推荐指数
3
解决办法
3833
查看次数

`po`给出`错误:<EXPR>:1:1:错误:使用未解析的标识符`

po在控制台中有这个问题,尝试输出一个函数本身,但输出变量或常量不会.

第一个结果是<code>bar.boy()</code>,但是Swift无法找到它......</p> </div>
        <p>
          <a href=debugging console var po swift

57
推荐指数
3
解决办法
2万
查看次数

何时在Javascript中使用var

也许很简单的问题.

我应该var在JavaScript中使用关键字.在我看来使用它或不具有相同的效果(但我当然还在学习语言)

比如这些对我来说似乎都是一样的:

(function(){
  var a = "mundo"
  alert("Hola, " + a )
})()
Run Code Online (Sandbox Code Playgroud)

(function(){
  a = "mundo"
  alert("Hola, " + a )
})()
Run Code Online (Sandbox Code Playgroud)

但当然必须有一个更复杂的例子,差异显示出来.

javascript var

54
推荐指数
3
解决办法
3万
查看次数

Lazy Var vs Let

我想对Swift中的一些属性使用Lazy初始化.我当前的代码如下所示:

lazy var fontSize : CGFloat = {
  if (someCase) {
    return CGFloat(30)
  } else {
    return CGFloat(17)
  }
}()
Run Code Online (Sandbox Code Playgroud)

问题是,一旦设置了fontSize,它将永远不会改变.所以我想做这样的事情:

lazy let fontSize : CGFloat = {
  if (someCase) {
    return CGFloat(30)
  } else {
    return CGFloat(17)
  }
}()
Run Code Online (Sandbox Code Playgroud)

这是不可能的.

只有这个有效:

let fontSize : CGFloat = {
  if (someCase) {
    return CGFloat(30)
  } else {
    return CGFloat(17)
  }
}()
Run Code Online (Sandbox Code Playgroud)

所以 - 我想要一个延迟加载但永远不会改变的属性.这样做的正确方法是什么?使用let和忘记懒惰的初始化?或者我应该使用lazy var并忘记属性的恒定性质?

var let lazy-initialization swift

46
推荐指数
3
解决办法
2万
查看次数

为什么让set和var绑定使用setTimeout函数表现不同?

此代码记录66次:

(function timer() {
  for (var i=0; i<=5; i++) {
    setTimeout(function clog() {console.log(i)}, i*1000);
  }
})();
Run Code Online (Sandbox Code Playgroud)

但是这段代码......

(function timer() {
  for (let i=0; i<=5; i++) {
    setTimeout(function clog() {console.log(i)}, i*1000);
  }
})();
Run Code Online (Sandbox Code Playgroud)

...记录以下结果:

0
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)

为什么?

是因为不同地let绑定到内部范围每个项目并var保持最新值i

javascript var let

45
推荐指数
2
解决办法
7477
查看次数

golang append()已评估但未使用

func main(){
     var array [10]int
     sliceA := array[0:5]
     append(sliceA, 4)
     fmt.Println(sliceA)
}
Run Code Online (Sandbox Code Playgroud)

错误:附加(sliceA,4)已评估但未使用

我不知道为什么?切片追加操作未运行...

arrays var go

44
推荐指数
2
解决办法
2万
查看次数

C#中的var关键字是否导致拳击?

我的老板禁止我使用,var因为它会导致拳击和减慢应用程序.

真的吗?

c# performance boxing var

38
推荐指数
5
解决办法
2819
查看次数

什么是/ var/www/html?

我开始学习PHP/MySQL,但是在我正在阅读的所有文档中,它都提到/var/www/html了要安装CakePHP等框架的文件夹,或者例如/ var/www/html是你想要的文件夹安装你的网站,以便一切都在root中.

究竟是什么/var/www/html意思?

php cakephp var

37
推荐指数
2
解决办法
9万
查看次数

Java 中的 var 关键字

对于Java 10或+,我们可以使用var关键字进行声明。在初始化时,编译器将推断类型。

当我实例化的类并分配给用 , 声明的变量var,是接口的实现时,会发生什么?将推断哪种类型,接口还是实现?

java var

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

Object,Dynamic和Var之间的区别

我需要知道这三个关键字之间的差异Object,Dynamicvar在C#.

我看过这个链接,但我不明白在哪种情况下我必须使用每一个.

你能解释一下这些关键词之间的区别吗?每个关键字的效用是什么?

c# var dynamic object

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