小编Max*_*kov的帖子

Swift是否有像"ref"关键字那样强制参数通过引用传递?

在Swift中,结构和值类型默认按值传递,就像在C#中一样.但是C#还有一个非常有用的ref关键字,它强制参数通过引用传递,这样可以在函数内部更改同一个实例,然后从调用者的范围访问.有没有办法在Swift中实现相同的结果?

pass-by-reference swift

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

如何在构造函数体中初始化最终字段?

基本上,这就是我想要做的:

  ClassName
  {
    final OtherClass field;

    ClassName()
    {
      field = new OtherClass(this);
    }
  }
Run Code Online (Sandbox Code Playgroud)

dart

26
推荐指数
2
解决办法
4267
查看次数

"let"关键字在Swift中的工作原理是什么?

我在指南中读到了这个简单的解释:

在编译时不需要知道常量的值,但是必须为其分配一次值.

但我想要比这更详细一些.如果常量引用了一个对象,我还可以修改它的属性吗?如果它引用了一个集合,我可以添加或删除它中的元素吗?我来自C#背景; 是否类似于readonly工作(除了能够在方法体中使用它),如果不是,它有什么不同?

constants swift

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

在Objective-C中,异常/返回NO/nil的最佳实践是什么?

我是Objective-C的新手,我看到有关于错误处理的不同约定.有一些例外,但也有一些情况,如果出现问题,函数应该返回nil.

那么,我如何决定何时使用哪个,以及如何处理异常和意外的返回值?什么是最佳做法和危险信号?

exception-handling exception objective-c return-value

22
推荐指数
2
解决办法
7319
查看次数

如何使脚本以统一的简单方式等待/睡眠

如何在TextUI.text = ....睡眠功能之间放置,每个短语之间等待3秒?

public Text GuessUI;
public Text TextUI;

[...truncated...]

TextUI.text = "Welcome to Number Wizard!";
TextUI.text = ("The highest number you can pick is " + max);
TextUI.text = ("The lowest number you can pick is " + min);
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种各样的东西,但没有奏效,这样:

TextUI.text = "Welcome to Number Wizard!";
yield WaitForSeconds (3);
TextUI.text = ("The highest number you can pick is " + max);
yield WaitForSeconds (3);
TextUI.text = ("The lowest number you can pick is " + min);
Run Code Online (Sandbox Code Playgroud)

在bash中将是: …

c# sleep wait monodevelop unity-game-engine

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

有什么方法可以在Swift中捕获断言吗?

似乎Swift没有类似C#/ Java的异常,而是使用断言.但是,该书说,在生产环境中,它们会立即使应用程序崩溃.周围没有办法吗?单元测试怎么样,如何测试某个函数断言它获得了正确的输入值?

assert exception try-catch swift

19
推荐指数
1
解决办法
5959
查看次数

在C#中重载=运算符

好的,我知道这是不可能的,但这是制定问题标题的最佳方式.问题是,我正在尝试使用我自己的自定义类而不是浮点数(用于确定性模拟),我希望语法尽可能接近.所以,我当然希望能够写出类似的东西

FixedPoint myNumber = 0.5f;
Run Code Online (Sandbox Code Playgroud)

可能吗?

c# overloading operator-keyword

17
推荐指数
2
解决办法
1507
查看次数

重复的符号错误 - 全局常量

在类的标题中,在接口声明之外,我已经声明了全局常量:

NSString * const gotFilePathNotification = @"gotFilePath";
NSString * const gotResultNotification = @"gotResultOfType";
Run Code Online (Sandbox Code Playgroud)

gotResultNotification仅用于此类(尚未),但我在另一个类实现中引用了gotFilePathNotificaion.为此,我导入此标头.

当我尝试编译时,我在此标头中获得了有关gotFilePathNotification的重复符号链接器错误.为什么会这样?

linker compiler-errors const objective-c

14
推荐指数
2
解决办法
4567
查看次数

如何让git-status检查两个不同的遥控器?

每个git用户都习惯于此:

> git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)

然而,最近我开始使用两个遥控器而不是一个(heroku和github,非常标准的情况,我认为),它开始让我烦恼只能在git status输出中看到1个原点.

我怎么能添加其他遥控器所以我会看到这样的东西?

> git status
On branch master
Your branch is up-to-date with 'origin/master'.
Your branch is up-to-date with 'heroku/master'.

nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)

(这个问题与heroku或github无关,这只是一个方便的例子.)

git git-status

13
推荐指数
2
解决办法
3445
查看次数

如何以适当的类型安全方式迭代 Record 键?

让我们在一些属性上构建一个示例记录。

type HumanProp = 
    | "weight"
    | "height"
    | "age"

type Human = Record<HumanProp, number>;

const alice: Human = {
    age: 31,
    height: 176,
    weight: 47
};
Run Code Online (Sandbox Code Playgroud)

对于每个属性,我还想添加一个人类可读的标签:

const humanPropLabels: Readonly<Record<HumanProp, string>> = {
    weight: "Weight (kg)",
    height: "Height (cm)",
    age: "Age (full years)"
};
Run Code Online (Sandbox Code Playgroud)

现在,使用这个 Record 类型和定义的标签,我想迭代两个具有相同键类型的记录。

function describe(human: Human): string {
    let lines: string[] = [];
    for (const key in human) {
        lines.push(`${humanPropLabels[key]}: ${human[key]}`);
    }
    return lines.join("\n");
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到一个错误:

Element implicitly has an 'any' type because expression of …
Run Code Online (Sandbox Code Playgroud)

typescript

13
推荐指数
2
解决办法
5440
查看次数