小编men*_*fon的帖子

有没有一种方法可以简洁地递归获取目录中的所有文件?

我的意思是可用于单行。例如这个:

raku -e 'dir(".")==>say()'
Run Code Online (Sandbox Code Playgroud)

打印当前目录中的所有文件和目录。如何更新它以便它递归地工作(没有库和/或用户定义的例程)?还是不可能?

:recursive在某处看到了提到的标志,但这不起作用:

> raku -e 'dir(".", :recursive)==>say()'
Cannot resolve caller dir(Str:D, :recursive); none of these signatures matches:
    (IO(Any) $path, Mu :$test!)
    (IO(Any) $path)
    (Mu :$test!)
    ()
  in block <unit> at -e line 1
Run Code Online (Sandbox Code Playgroud)

它在缺少 shell 工具(在 Windows 上)或具有不同版本/分支的常用工具的环境中可能很有用。

raku

13
推荐指数
3
解决办法
1456
查看次数

如何在Flow中使用覆盖字段来使用(或模拟)对象传播?

这不会在"Try Flow"上编译:

/* @flow */

type A = { a: number, b: string};
type B = { a: string, b: string };

const x: A = { a:1, b:'2' };
const y: B = { ...x, a: x.a.toString() }
Run Code Online (Sandbox Code Playgroud)

错误是:

const y: B = { ...x, a: x.a.toString() }
                ^ Cannot assign object literal to `y` because number [1] is incompatible with string [2] in property `a`.

    References:

    3: type A = { a: number, b: string};
                     ^ [1]

    4: …
Run Code Online (Sandbox Code Playgroud)

javascript typescript flowtype

10
推荐指数
1
解决办法
108
查看次数

如何在 Raku 中对列表中的元素进行分组?

Raku 中是否有某种方法,当您向它传递“getter”时,会将原始列表中的项目分组在一起,而 getter 返回相同的值?

我正在寻找类似groupByScala 的东西:

@ (1 until 10).groupBy(_ % 3)
res0: Map[Int, IndexedSeq[Int]] = HashMap(0 -> Vector(3, 6, 9), 1 -> Vector(1, 4, 7), 2 -> Vector(2, 5, 8))
Run Code Online (Sandbox Code Playgroud)

或者groupBy来自 Lodash (JavaScript):

> groupBy(range(1, 10), x => x % 3)
{"0": [3,6,9], "1": [1,4,7], "2": [2,5,8]}
Run Code Online (Sandbox Code Playgroud)

raku

10
推荐指数
1
解决办法
166
查看次数

如何省略对象传播中的字段?

我有一个包含许多字段的界面,而另一个界面包含几乎所有字段(仅少一个)。

如何在打字稿不无类型不安全的拐杖(<>asanyunknown和类似的)可以在一个排除对象传播领域(不使列举的每个字段我想复制)?

interface A {
    fieldA: number;
    fieldB: string;
    fieldC: number;
    fieldD: string;
    fieldE: number;
    fieldF: string;
}

interface B {
    fieldA: number;
    fieldB: string;
    fieldC: number;
    fieldD: string;
    fieldE: number;
    // no fieldF here
}

const a: A = {
    fieldA: 1,
    fieldB: 'b',
    fieldC: 3,
    fieldD: 'd',
    fieldE: 5,
    fieldF: 'f'
}

const b: B = {
    ...a,
    fieldF: undefined
};
Run Code Online (Sandbox Code Playgroud)

这不会编译,因为 fieldF 仍然存在,只有undefined.

typescript

9
推荐指数
1
解决办法
4790
查看次数

Raku 中有“管道”运算符吗?

我的意思是反向应用运算符。例如在 Haskell 中它将是&

\n
ghci> import Data.Function ((&))\nghci> 2 & (+ 1)\n3\n
Run Code Online (Sandbox Code Playgroud)\n

在 Raku 中,我看到了==>feed 运算符,但这似乎不适用于 lambda?

\n
> (* + 1)(2)\n3\n> 2 ==> (* + 1)\n===SORRY!=== Error while compiling:\nOnly routine calls or variables that can \'.push\' may appear on either side of feed operators.\n------> 2 ==> \xe2\x8f\x8f(* + 1)\n
Run Code Online (Sandbox Code Playgroud)\n

raku

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

如何将联合类型的所有可能值获取到数组(或相反)?

例子:

type X = 'a' | 'b';
const xVals = ??? X; // ['a', 'b']
Run Code Online (Sandbox Code Playgroud)

或者相反(从所有可能值的列表中获取一个类型,该类型是数组中所有值的并集)。

我的目标是将所有可能的值仅列出一次。

typescript

8
推荐指数
2
解决办法
3381
查看次数

如何在 Raku 中将字符串向右对齐并在太长时将其截断?

重要的是,我希望保持对齐,因此字符串会从左侧被切断。我尝试过substr,但如果字符串不够长,就会崩溃。目前我有一个类似的解决方案:

> my $xs = (0..4).kv.map(-> $i, $x { ('a'..'z')[0..$i-1].join })
( a ab abc abcd)
> $xs.map({ sprintf '%3.3s', $_ }).raku
("   ", "  a", " ab", "abc", "abc").Seq
Run Code Online (Sandbox Code Playgroud)

但问题是,字符串仍然从右侧而不是左侧被截断(截断的行为就像向左对齐,而不是向右对齐)。我正在寻找会返回的东西:

("   ", "  a", " ab", "abc", "bcd")
Run Code Online (Sandbox Code Playgroud)

不同之处在于最后一项,其中“abcd”中的“a”应该被截断,而不是“d”。

raku

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

选择可空属性并使它们不可为空的一般方法

让我们有一个以下示例类型:

interface A {
    a?: number;
    b: string;
}
Run Code Online (Sandbox Code Playgroud)

我的目标是有一种创建以下类型的通用方法:

interface ExpectedA {
    a: number;
}
Run Code Online (Sandbox Code Playgroud)

因此,我想删除所有不可为空的字段(那些可以包含nulland/or 的undefined字段)并使那些剩余的可为空的字段不可为空。

这就是我想象的它应该如何工作:

const expA1: ExpectedA = {}; // should NOT pass
const expA2: ExpectedA = {a: 1}; // should pass
const expA3: ExpectedA = {b: ''}; // should NOT pass
const expA4: ExpectedA = {c: 0}; // should NOT pass
const expA5: ExpectedA = {a: 1, b: ''}; // should NOT pass
Run Code Online (Sandbox Code Playgroud)

这是我的非工作尝试(在评论中注释了它的作用和应该做什么):

export type ExtractNullable<T> = {
    [K …
Run Code Online (Sandbox Code Playgroud)

typescript

5
推荐指数
1
解决办法
1767
查看次数

配置 CMake 只运行 scons,不构建任何东西

我在使用 scons 的项目中使用 CLion(仅支持 CMake)。

如何将 CMake 配置为不构建任何内容,只需运行带参数的 scons,以便 IDE 能够获取错误中的文件引用,并且我将能够轻松导航?


Edit1:
我尝试过add_custom_target(在评论中建议)这样的:

add_custom_target(game
        ALL
        scons p=linux bits=64
        SOURCES
        godot-cpp/godot_headers/android/godot_android.h
        godot-cpp/godot_headers/arvr/godot_arvr.h
        godot-cpp/godot_headers/gdnative/aabb.h
        godot-cpp/godot_headers/gdnative/array.h
... all files  from previously used add_executable (which worked with IDE)
)
Run Code Online (Sandbox Code Playgroud)

但是 IDE 找不到任何包含的文件,所以我猜我做错了什么。我也尝试COMMAND在 scons 和各种WORKING_DIRECTORY( ., src, without)之前添加,但没有成功。

c++ cmake scons clion

5
推荐指数
1
解决办法
880
查看次数

将泛型与索引类型相结合

由于这有效:

const f = <T extends string>(x: T) => x;
f("");

interface Dictionary<T> { [key: string]: T; }
const dict: Dictionary<number> = { a: 1 };
Run Code Online (Sandbox Code Playgroud)

我期待以下代码也能正常工作:

interface MyRecord<Key extends string, Value> { [_: Key]: Value };
Run Code Online (Sandbox Code Playgroud)

但编译器报告_

An index signature parameter type must be 'string' or 'number'.
Run Code Online (Sandbox Code Playgroud)

改变Key extends stringKey extends string | number什么也不做(同样的错误)。

它失败的原因是什么以及如何寻找正确的解决方案?(最好不使用Any和类似。)

编辑1:

type XY = 'x' | 'y';
const myXY: XY = 'x';
const myString: string …
Run Code Online (Sandbox Code Playgroud)

typescript

5
推荐指数
1
解决办法
2066
查看次数

如何禁用/规避“大型拉取请求只能通过单独加载文件来查看”。在新的 BitBucket PR 改革中?

这是一个很大的拉取请求。大型拉取请求只能通过单独加载文件来查看。

我不在乎加载是否需要一分钟,但我强烈希望立即看到所有更改,而不必使用笨拙的替代品,例如在文件树中导航或使用下一个/上一个按钮。

对于 BitBucket 的 PR 屏幕的早期版本,可以使用 Refined BitBucket 插件,但遗憾的是,对于新的“改进的”PR 屏幕,似乎不再支持此功能。

bitbucket pull-request

5
推荐指数
0
解决办法
264
查看次数

使用AoT时"NgModule的提供程序无效"

没有AoT一切正常.但是在切换加载器之后,我收到了这个错误并且不知道如何解决它,或者究竟是什么问题.

"/xxx/src/app/app.module.ts"中NgModule"AppModule"的提供程序无效 - 只允许提供者和类型的实例,得到:[/ logx /src /app/services/login.service.service中的LoggerService .ts,LocalXtorageService在/xxx/node_modules/angular-2-local-storage/dist/local-storage.service.d.ts,WindowsService在/xxx/src/app/services/window.service.ts,? null? ,...]

相关代码来自AppModule:

import CustomHttp from './services/custom-http.service';

...

@NgModule({

...

  providers: [
    LocalStorageService,
    WindowService,
    AuthService,
    LoggerService,
    CustomHttp,
    AuthTokenStore,
    AuthService,
    SchemaValidator,
    AuthInterceptor,
    DataService,
    ErrorHelper,
    FileUpload,
    {provide: ErrorHandler, useClass: LoggingErrorHandler},
    NonAngularDialogsHelper,
    ConfirmationService,
    SearchHelper,
    FormHelper,
    DebugHelper,
    PuxApplication,
    StoreUtils,
    TranslationHelper,
    MessagesService,
    CustomValidatorsService,
    GeolocationService,
    SavedSearchesService,
    LoggedInfoService,
    BeTranslate,
    CountryHelper,
    SuggestionGenerators,
    PrimeNgHelper,
    UrlHelper,
    DocumentClickService,
    NavigationHelper,
    BeErrorsInterceptor,
    DocumentService,
    ScrollHelper,
    LinkDialogHelper,
    HtmlUtilsService,
    RouterHelperService,
    StripeService,
    VatExamplesService,
    ContactInfoHelper,
    WizardHelper,
    PasswordChangingPagesHelper,
    LandingPageHelper,
    TrackingEventsHelper,
    RfoHelper,
    ReactiveFormsHelper,
    LiveChatService,

    CounterActions
  ]

...
Run Code Online (Sandbox Code Playgroud)

片段来自CustomHttp: …

typescript angular2-aot angular

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

Chrome 未开始使用 Watir

该脚本在本地运行,但不在服务器上运行。

b = Watir::Browser.new :chrome, headless: true
Run Code Online (Sandbox Code Playgroud)

错误:

response.rb:69:in `assert_ok': unknown error: Chrome failed to start: exited abnormally (Selenium::WebDriver::Error::UnknownError)
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
  (Driver info: chromedriver=2.45.615279 (12b89733300bd268cff3b78fc76cb8f3a7cc44e5),platform=Linux 4.9.75-29.el7.x86_64 x86_64)
        from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/response.rb:32:in `initialize'
        from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/common.rb:84:in `new'
        from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/common.rb:84:in `create_response'
        from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/default.rb:104:in `request'
        from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/http/common.rb:62:in `call'
        from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/bridge.rb:166:in `execute'
        from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/bridge.rb:99:in `create_session'
        from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/remote/bridge.rb:53:in `handshake'
        from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/chrome/driver.rb:49:in `initialize'
        from /root/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/selenium-webdriver-3.141.0/lib/selenium/webdriver/common/driver.rb:44:in `new' …
Run Code Online (Sandbox Code Playgroud)

ruby watir

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