AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

全部问题(coding)

Martin Hope
librasteve
Asked: 2023-12-02 19:50:44 +0800 CST

是否有可能将某个值提升到 Grammar TOP?

  • 9

我有这个 raku 语法:

#!/usr/bin/env raku
use v6.d;

use Grammar::Tracer;

grammar Grammar {
    token TOP {
          <city>      \v
          <state-zip> \v?
    }
    token city {
        ^^ \V* $$
    }
    token state-zip {
        ^^ <state> <.ws>? <zipcode> $$    #<.ws> is [\h* | \v]
    }
    token state {
        \w \w
    }
    token zipcode {
        \d ** 5
    }
}

class Actions {
    method TOP($/) {
        #works
        say "city is ",    $_ with $<city>.made;
        say "state is ",   $_ with $<state-zip><state>.made;
        say "zipcode is ", $_ with $<state-zip><zipcode>.made;

        #doesn't work
        say "state2 is ",   $_ with $<state>.made;
        say "zipcode2 is ", $_ with $<zipcode>.made;
    }

    method city($/)     { make ~$/ }
    method state($/)    { make ~$/ }
    method zipcode($/)  { make ~$/ }
}

my $address = q:to/END/;
Springfield,
IL 62704
END

Grammar.parse($address, :actions(Actions));

效果很好:

TOP
|  city
|  * MATCH "Springfield,"
|  state-zip
|  |  state
|  |  * MATCH "IL"
|  |  zipcode
|  |  * MATCH "62704"
|  * MATCH "IL 62704"
city is Springfield,
state is IL
zipcode is 62704
* MATCH "Springfield,\nIL 62704\n"

token <state-zip>是让状态和邮政编码共存于一行还是跨越多行。请记住,这是一个 MRE,因此我正在寻找不会改变语法的答案,但会改变操作的 make / made 方面。

但是 - 为了简化我的代码,我希望能够从method TOP($/) {}我的示例 state2 和 zipcode2 的操作中访问顶层的州和邮政编码。我一直在尝试将状态和令牌的制作值“提升”到匹配树上 - 例如可能是这样的:

# doesn't work
method TOP($/) {
    make $<state>.made;
    make $<zip>.made;
    ...
}
method state-zip($/) {
    make $<state>.made;
    make $<zip>.made;
}

这可能吗?

parsing
  • 2 个回答
  • 62 Views
Martin Hope
eespie
Asked: 2023-11-28 01:14:05 +0800 CST

提取带有英文网站的维基数据公司

  • 9

我正在尝试查询拥有 Linkedin 标识符、ISINS、LEI 或英文网站的企业。如果可能的话,我只想要每个公司一行数据。

我正在努力解决最后一部分,我想我成功地确定了我只想填充英文网站,但实际的 URL 并未填充在结果中。

SELECT DISTINCT ?item ?itemLabel ?linkedin ?isin ?lei ?website WHERE {
  SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
  {
    SELECT DISTINCT ?item ?linkedin ?isin ?lei ?website WHERE {
      ?item wdt:P31 wd:Q4830453.
      {
      ?item wdt:P4264 ?linkedin.}
      UNION
      {
      ?item wdt:P946 ?isin.}
      UNION
      {
      ?item wdt:P1278 ?lei.}
      UNION
      {
      ?item wdt:P856 ?statement0.
      ?statement0 p:P856 [ps:P856 ?website ; pq:P407 wd:Q1860] }

    }
    LIMIT 100
  }
}

上述查询的结果

其他数据正在填充,但网站没有。我还获得了每个公司的多条记录。

sparql
  • 1 个回答
  • 35 Views
Martin Hope
david.perez
Asked: 2023-11-28 00:11:34 +0800 CST

Scala 与 Kotlin 中的迭代

  • 9

我正在将一些代码从 Scala 迁移到 Kotlin,我观察到不同的行为:

斯卡拉:

var i = 0

Iterator.continually{
  println(s"i=$i")
  i += 1
  i
}.takeWhile { 
  _ < 3
}.foreach { i =>
  println(s"I=$i")
}

输出:

i=0
I=1
i=1
I=2
i=2

科特林等效项:

fun <A> continousIterator(func: () -> A): Iterable<A> =
    object: Iterable<A> {
        override fun iterator() =
            object: Iterator<A> {
                override fun hasNext(): Boolean = true
                override fun next(): A = func()
            }
    }
    
var i = 0;
    
fun main() {
    continousIterator{
        println("i=$i")
        i += 1
        i
    }.takeWhile{
      it < 3
    }.forEach { 
      println("I=$it")
    }
}

输出:

i=0
i=1
i=2
I=1
I=2

当我们有状态时,结果是不一样的,调用顺序func()和调用顺序iterator是不同的。

我想知道为什么。

scala
  • 1 个回答
  • 39 Views
Martin Hope
lequinne
Asked: 2023-11-27 05:11:10 +0800 CST

将 std::weak_ptr 创建为数组类型 std::shared_ptr 的索引值?

  • 9

我有一个很大的数据集,基本上是这样加载的:

for(int i=0;i<count; i++){
   auto ptr = std::make_shared<Object>(Object());
   //do stuff with ptr
}

由于内存分配是零碎的,这对性能来说并不是很好。我想做的是这样的:

std::shared_ptr<Object[]> allObjects; //this is stored elsewhere until the program ends

allObjects.reset(new Object[count]);
for(int i=0;i<count; i++){
   auto ptr = std::weak_ptr<Object>(&allObjects[i]);
   //do stuff with ptr
}

不幸的是这不能编译。我可以这样尝试:

auto ptr = std::shared_ptr<Object>(&allObjects[i]);

这在程序运行时效果很好,但是当然,当 ptr 的所有副本都被销毁时,就要付出惨重的代价。所以我希望 ptr 成为 std::weak_ptr。主数组 std::shared_ptr 将被存储,直到所有weak_ptr被销毁。那么我可以为数组类型 std::shared_ptr 的索引成员创建一个 std::weak_ptr 吗?我只是缺少一些语法吗?我需要不同的容器类型吗?或者我是否遗漏了该方法的根本错误?

c++
  • 1 个回答
  • 80 Views
Martin Hope
user2380782
Asked: 2023-11-16 22:28:02 +0800 CST

基于两列的组合切换 R 中数据帧中的列值

  • 9

我有一个关于根据基于两列的组合更改 data.frame 中的字符值的问题。我将尝试举一个例子来说明 data.frame 的外观

data <- data.frame(A1 = c("A", "T", "C"), A2 = c("C", "G", "T"), 
                   Ind1 = c("AA", "TG", "TT"), Ind2 = c("CA", "GT", "CT"),
                   Ind3 = c("AC", "GG", "TC"))

> data
  A1 A2 Ind1 Ind2 Ind3
1  A  C   AA   CA   AC
2  T  G   TG   GT   GG
3  C  T   TT   CT   TC

A1我想更改从 Ind1 到 Ind3 的列中的值,这些值与列和的可能组合不匹配A2,例如在第一行中,A1是 anA和A2是 a ,C因此可能的组合将是AA, AC, CC(基于A1, 和 的组合A2以该顺序)。因此 Ind2 应该AC代替CA。

所需的输出将是这样的:

> data
  A1 A2 Ind1 Ind2 Ind3
1  A  C   AA   AC   AC
2  T  G   TG   TG   GG
3  C  T   TT   CT   CT

我已经尝试过,switch但它不起作用。任何帮助,将不胜感激。谢谢

  • 3 个回答
  • 54 Views
Martin Hope
blonded04
Asked: 2023-11-16 21:49:43 +0800 CST

静态初始化顺序失败适用于 C 吗?

  • 9

我在互联网上找到的所有关于静态初始化顺序惨败的内容都是关于 C++ 的,但是如果我初始化某种类型 Foo 的全局变量(例如

struct Foo {
    int flag;
    pthread_key_t key;
    void *ptrs[10];
};

我无法初始化类型变量,struct Foo如static struct Foo x = { 0 };?如果我想因为 SIOF 获得正确的代码?

c++
  • 4 个回答
  • 141 Views
Martin Hope
Sam
Asked: 2023-11-14 22:50:44 +0800 CST

Linux 将所有多行中的整列替换为新值

  • 9

我的文件中有以下几行

$ cat test.txt
69|1074330570|1,sip:+121345633210x3Bverstat=TN-Validation-Passed|tel:+12134565534|0
69|1077822111|2,;tel:+2223120011~sip:[email protected];|sip:[email protected]|0
69|1077988012|1,sip:+121510016070x3Bverstat=TN-Validation-Passed|tel:+136965339510x3Bnpd|0

我想用电话号码替换文件中的第三列和第四列,如下所示:

69|1074330570|2134563321|2134565534|0
69|1077822111|2223120011|3123120022|0
69|1077988012|2151001607|3696533951|0

好的部分是所有文件在第三列和第四列中都会有一个“+”。现在困难的部分是,有时我们会得到第一行第三列中注意到的 11 位数字 (121345633210),有时“+”后没有添加“1”。因此,如果加号后面有 1,则排除 1。否则,从“+”号后面开始长度。同样,如果有 11 位数字,只需子串 10。此外,如果有超过 1 个数字(如第 2 行),我只需要选取“+”号后面的第一个数字,例如 2223120011,而不是 2223120051。

我尝试了以下方法

awk -F"|"  'BEGIN {FS="+"}{print substr($3,2,10)}' test.txt

但它为第二行提供了不正确的值,因为它需要在“+”号之后开始。

regex
  • 4 个回答
  • 96 Views
Martin Hope
Evelyn
Asked: 2023-11-14 06:01:30 +0800 CST

为什么通过反射调用时,整数 '0' IEquatable.Equals 对 null 对象返回 true,而对整数调用时返回 false?

  • 9

从整数 0 调用 IEquatable.Equals 来测试空对象应该返回 false,但使用反射时它返回 true。给定以下代码,我期望 foriEquals和equals返回“false”,但反射代码返回 true,为什么?我使用的是 C# 7.3 和 .NET Framework 4.6.2:

int zero = 0;
object nullObj = null;
var iEquals = zero.GetType().GetInterface("IEquatable`1").GetMethod("Equals");
var reflectionEquals = iEquals.Invoke(zero, new[] { nullObj }); // true
var equals = ((IEquatable<int>)zero).Equals(nullObj); // false
c#
  • 1 个回答
  • 63 Views
Martin Hope
Leonardo Sibela
Asked: 2023-10-27 00:07:03 +0800 CST

Kotlin - 仅替换字符串中最后给定的字符串

  • 9

我想用另一个字符串替换字符串,但只替换最后找到的字符串。例如:

"ONE, TWO, THREE, FOUR".replaceLast(",", " &") // Outputs: "ONE, TWO, THREE & FOUR"
java
  • 2 个回答
  • 50 Views
Martin Hope
towi
Asked: 2023-10-22 19:12:25 +0800 CST

如何总结 C++20 迭代器概念的含义?

  • 9

如果我想可视化 C++20迭代器概念的层次结构,我想用一行简短地解释每个概念的含义。没有什么精确的,只是一个粗略的意思(精确性在源代码中......;-))

我很难想出一个好的“一行摘要”

  • 输入迭代器
  • 输出迭代器
  • 前向迭代器

这是我的可视化:

digraph iter_concepts {

rankdir = BT;

node[shape=record];

indirectly_readable [label="{indirectly_readable|... = *it}"];
indirectly_writable [label="{indirectly_writable|*it = ...}"];
weakly_incrementable [label="{weakly_incrementable|++it, one pass}"];
incrementable [label="{incrementable|++it, multi pass}"];
input_or_output_iterator [label="{input_or_output_iterator|*it}"];
sentinel_for [label="{sentinel_for|for(x : ...)}"];
sized_sentinel_for [label="{sized_sentinel_for|for(... i&lt;sz ...)}"];
input_iterator [label="{input_iterator|}"];
output_iterator [label="{output_iterator|}"];
forward_iterator [label="{forward_iterator|}"];
bidirectional_iterator [label="{bidirectional_iterator| --it}"];
random_access_iterator [label="{random_access_iterator| it+=n, it-=n, it[n]}"];
contiguous_iterator [label="{contiguous_iterator| it ≍ pointer}"];


incrementable -> weakly_incrementable;
input_or_output_iterator -> weakly_incrementable;
sentinel_for -> input_or_output_iterator;
sized_sentinel_for -> sentinel_for;
input_iterator -> input_or_output_iterator;
input_iterator -> indirectly_readable;
output_iterator -> input_or_output_iterator;
output_iterator -> indirectly_writable;
forward_iterator -> input_iterator;
forward_iterator -> sentinel_for;
forward_iterator -> incrementable;
bidirectional_iterator -> forward_iterator;
random_access_iterator -> bidirectional_iterator;
contiguous_iterator -> random_access_iterator;

}

结果图像是我非常满意的,除了缺少的框:

有向图 iter_concepts

更新:forward_iterator -> incrementable我纠正了图表中的缺失(尚未在图像中)。

c++
  • 1 个回答
  • 88 Views
上一页
下一页

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve