小编bol*_*oli的帖子

如何从PowerShell函数返回一个且只有一个值?

我从这个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)

powershell

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

IComparable magic - 为什么它是一个有效的声明?

我不明白它为什么会起作用......

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),但为什么呢?

.net c#

12
推荐指数
1
解决办法
293
查看次数

Django blocktrans - HTML标签内部

是否可以在Django块中放置一些HTML标记:{%blocktrans%} {%endblocktrans%}?

例如:

{% blocktrans %}Django<br>framework needed{% endblocktrans %} 
Run Code Online (Sandbox Code Playgroud)

django localization

6
推荐指数
2
解决办法
4572
查看次数

当我在异步方法中调用CancellationTokenSource的Cancel方法时,为什么不取消任务?

我创造了一个小包装CancellationTokenCancellationTokenSource.我遇到的问题是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

6
推荐指数
1
解决办法
4803
查看次数

当某些文件名包含星号时,无法在 Windows 上克隆 git repo

我的存储库中有以下名称的文件:

*.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.

你知道任何解决方法吗?

windows git

4
推荐指数
1
解决办法
1558
查看次数

如何使用sinon.js模拟/存根回调函数?

我想用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)

javascript qunit sinon

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