Tag: 返回

使用{}语句在里面调用return是一个好方法吗?

我只是想知道是否安全/好的方法来调用return using块内。 例如。 using(var scope = new TransactionScope()) { // my core logic return true; // if condition met else return false; scope.Complete(); } 我们知道在最后的大括号dispose()将被closures。 但是,在上述情况下,由于return跳出给定范围(AFAIK)的控制… 我的scope.Complete()被调用? 对于范围的dispose()方法也是如此。

返回停止循环?

假设我有这样一个循环: for (var i = 0; i < SomeArrayOfObject.length; i++) { if (SomeArray[i].SomeValue === SomeCondition) { var SomeVar = SomeArray[i].SomeProperty; return SomeVar; } } 快速的问题: return停止循环的执行本身?

在void方法中使用return是不好的做法吗?

想象下面的代码: void DoThis() { if (!isValid) return; DoThat(); } void DoThat() { Console.WriteLine("DoThat()"); } 在void方法中使用返回是可以的吗? 它有任何性能损失? 或者写一个这样的代码会更好: void DoThis() { if (isValid) { DoThat(); } }

从swift中返回一个函数的多个值

如何从swift函数中返回3个相同types(Int)的独立数据值? 我试图返回一天的时间,我需要返回小时,分钟和秒作为单独的整数,但所有在一个去从相同的function,这可能吗? 我想我只是不明白返回多个值的语法。 这是我正在使用的代码,我遇到了最后(返回)行的麻烦。 任何帮助将不胜感激! func getTime() -> Int { let date = NSDate() let calendar = NSCalendar.currentCalendar() let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond, fromDate: date) let hour = components.hour let minute = components.minute let second = components.second let times:String = ("\(hour):\(minute):\(second)") return hour, minute, second }

在Ruby块中使用“返回”

我正在尝试将Ruby 1.9.1用于embedded式脚本语言,以便将“最终用户”代码写入Ruby块中。 与此相关的一个问题是,我希望用户能够在块中使用“返回”关键字,所以他们不需要担心隐式返回值。 考虑到这一点,这是我希望能够做的事情: def thing(*args, &block) value = block.call puts "value=#{value}" end thing { return 6 * 7 } 如果我在上面的例子中使用'return',我得到一个LocalJumpError。 我知道这是因为有问题的块是Proc而不是lambda。 代码的作品,如果我删除“返回”,但我真的希望能够在这种情况下使用“返回”。 这可能吗? 我已经尝试将块转换为lambda,但结果是相同的。

在C ++中的逗号运算符的不同行为与返回?

这(注意逗号运算符 ): #include <iostream> int main() { int x; x = 2, 3; std::cout << x << "\n"; return 0; } 输出2 。 但是,如果您使用逗号运算符return ,则: #include <iostream> int f() { return 2, 3; } int main() { int x; x = f(); std::cout << x << "\n"; return 0; } 输出3 。 为什么逗号运算符的行为与return有所不同?

有一个返回语句只是为了满足语法不好的做法?

考虑下面的代码: public Object getClone(Cloneable a) throws TotallyFooException { if (a == null) { throw new TotallyFooException(); } else { try { return a.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } } //cant be reached, in for syntax return null; } return null; 是必要的,因为一个exception可能被捕获,但是在这种情况下,因为我们已经检查过它是否为空(假设我们知道我们调用的类支持克隆),所以我们知道try语句永远不会失败。 为了满足语法和避免编译错误(有一个解释它不会被达成的注释),还是有更好的方法来编写类似这样的代码是不好的做法,返回语句是不必要的?

结构有什么特别之处?

我知道在C中,我们不能从函数返回一个数组,而是一个指向数组的指针。 但是我想知道structs的特殊之处是什么使得它们可以通过函数返回,即使它们可能包含数组。 为什么struct包装使下面的程序有效? #include <stdio.h> struct data { char buf[256]; }; struct data Foo(const char *buf); int main(void) { struct data obj; obj = Foo("This is a sentence."); printf("%s\n", obj.buf); return 0; } struct data Foo(const char *buf) { struct data X; strcpy(X.buf, buf); return X; }

在函数结束之前(例如检查失败),在python中退出函数(没有返回值)的最好方法是什么?

让我们假设一个迭代,我们调用一个没有返回值的函数。 我认为我的程序应该performance的方式在这个伪代码中解释: for element in some_list: foo(element) def foo(element): do something if check is true: do more (because check was succesful) else: return None do much much more… 如果我在python中实现这个function,它会让我困扰,函数返回None 。 有没有更好的方法来“退出函数,没有返回值,如果检查失败的函数的主体”?

在Android中从AsyncTask返回值

一个简单的问题:是否有可能在AsyncTask返回一个值? //AsyncTask is a member class private class MyTask extends AsyncTask<Void, Void, Void>{ protected Void doInBackground(Void… params) { //do stuff return null; } @Override protected void onPostExecute(Void result) { //do stuff //how to return a value to the calling method? } } 然后在我的Activity / Fragment : // The task is started from activity myTask.execute() // […]