我从这个StackOverflow问题中了解到,$result返回语义是不同的,让我们从$result返回语义中说出来.引用上述问题:
PowerShell具有非常古怪的返回语义 - 至少从更传统的编程角度来看是这样.有两个主要想法可以解决:所有输出都被捕获并返回.return关键字实际上只是表示逻辑退出点.
我们来看看这个例子:
function Calculate
{
echo "Calculate"
return 11
}
$result = Calculate
Run Code Online (Sandbox Code Playgroud)
如果你回声,$result你会发现事情是不对的.你期望这个:
11
Run Code Online (Sandbox Code Playgroud)
但实际情况,你实际看到的,是不同的:
Calculate
11
Run Code Online (Sandbox Code Playgroud)
因此,您实际上只返回一个数组,而不是仅返回预期的返回值.
你可以摆脱echo语句而不是污染返回值,但是如果你从你的函数中调用另一个函数,它回应了某些东西,那么你又会遇到麻烦.
我的问题是,我怎么能写一个$result只返回一件事的函数.如果内置$result函数只返回一个值,为什么我不能这样做呢?
我现在正在使用的解决方法,我很想摆脱:
function Calculate
{
# Every function that returns has to echo something
echo ""
return 11
}
# The return values is the last value from the returning array
$result = (Calculate)[-1]
Run Code Online (Sandbox Code Playgroud) 我不明白它为什么会起作用......
class Program
{
static void Main(string[] args)
{
IComparable.Equals(12, 3);
}
}
Run Code Online (Sandbox Code Playgroud)
IL代码:
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// Code size 21 (0x15)
.maxstack 8
IL_0000: nop
IL_0001: ldc.i4.s 12
IL_0003: box [mscorlib]System.Int32
IL_0008: ldc.i4.3
IL_0009: box [mscorlib]System.Int32
IL_000e: call bool [mscorlib]System.Object::Equals(object,
object)
IL_0013: pop
IL_0014: ret
} // end of method Program::Main
Run Code Online (Sandbox Code Playgroud)
它编译为bool Object.Equals(Object,Object),但为什么呢?
是否可以在Django块中放置一些HTML标记:{%blocktrans%} {%endblocktrans%}?
例如:
{% blocktrans %}Django<br>framework needed{% endblocktrans %}
Run Code Online (Sandbox Code Playgroud) 我创造了一个小包装CancellationToken和CancellationTokenSource.我遇到的问题是CancelAsync方法CancellationHelper不能按预期工作.
我遇到了这个ItShouldThrowAExceptionButStallsInstead方法的问题.要取消正在运行的任务,它会调用await coordinator.CancelAsync();,但该任务实际上没有被取消,并且不会引发异常task.Wait
ItWorksWellAndThrowsException似乎运行良好而且使用coordinator.Cancel,这根本不是异步方法.
当我CancellationTokenSource在异步方法中调用Cancel方法时,为什么没有取消任务的问题是什么?
不要让waitHandle你迷惑,这只是为了不让任务提前完成.
让代码说明一切:
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
namespace TestCancellation
{
class Program
{
static void Main(string[] args)
{
ItWorksWellAndThrowsException();
//ItShouldThrowAExceptionButStallsInstead();
}
private static void ItShouldThrowAExceptionButStallsInstead()
{
Task.Run(async () =>
{
var coordinator = new CancellationHelper();
var waitHandle = new ManualResetEvent(false);
var task = Task.Run(() =>
{
waitHandle.WaitOne();
//this works well though - …Run Code Online (Sandbox Code Playgroud) c# asynchronous task cancellationtokensource cancellation-token
我的存储库中有以下名称的文件:
*.example.com.crt
问题是我无法在 Windows 上克隆存储库。
error: unable to create file *.example.com.crt (Invalid argument)
Checking out files: 100% (6122/6122), done.
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
你知道任何解决方法吗?
我想用QUnit和Sinon.Js编写单元测试.我有一个应用程序,用户可以点击按钮和模式对话框来处理下载一些文件.用户可以关闭对话框,它会触发一个方法来运行以重置某些变量.我的测试代码:
$(function() {
$.fn.copy_button = function(){};
ln_download_view = new DownloadModalView();
ln_download_view.modal = {'modal': function() {}};
var download_modal_dialog = $('.download-modal');
download_modal_dialog.modal = function(param){};
var modal_mock = sinon.mock(ln_download_view.modal);
var download_modal_dialog_mock = sinon.mock(download_modal_dialog);
//Should be inserted, because ln_download_view.modal is mocked
//The close button even handler
$('#btn_close_modal').click(function(){
download_modal_dialog.modal('hide');
});
//Dirty stuff to do after the window closes
//Basicly the click triggers this event handler
$('.download-modal').on('hide',function() {
window.clearInterval(window.periodicalTimer);
});
$('div .option-container').click(function() {
if(!$(this).hasClass("selected-option"))
{
$('div #option-presenting').toggleClass("selected-option");
$('div #option-editing-and-presenting').toggleClass("selected-option");
$('.image').toggle();
}
});
module("views");
test("Download modal dialog …Run Code Online (Sandbox Code Playgroud) c# ×2
.net ×1
asynchronous ×1
django ×1
git ×1
javascript ×1
localization ×1
powershell ×1
qunit ×1
sinon ×1
task ×1
windows ×1