小编oct*_*bus的帖子

是我的($ ptBatchRec); 一个指针?

我看过这篇SO帖子,看到了这个部分

my @array = ('a', 'b', 'c');
my  $variable  = @array;           #  3   size of @array
my ($variable) = @array;           # 'a'  $array[0]
Run Code Online (Sandbox Code Playgroud)

指定@arrayto 的第一个元素my ($variable).

我对以下继承的代码感到有点困惑.具体来说就是

my ($ptBatchRec);

被宣布为指针?

如果我删除括号会怎么样?

my $DBHandle = shift;                   # The ICS database handle
my $ptBatchStruct = shift;              # -> batch structure (hash)
my ($FiscalYear, $AccountType, $BatchType, $PaymentType, %Args) = @_;

my $DBIsLocked = 0;                     # Database is locked flag
my ($ptBatchRec);                       # -> batch record
.
. …
Run Code Online (Sandbox Code Playgroud)

perl

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

在clojure中同时更新两个值

我想知道如何同时更新两个值.例如,我想同时增加月份和减少年龄.我的代码是

user=>(def users {:month 1 :age 26})
user=>(update-in users [:month :age] inc dec)
Run Code Online (Sandbox Code Playgroud)

我知道这种语法不正确,但我该如何解决这个问题呢?我需要同时更新.因为如果我先更新月份然后更新年龄,那么当我更新第二张地图时,第一张地图将丢失.还是有其他方法可以解决这个问题吗?

clojure update-in

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

如何将","转换为string []

我想传递一个包含分隔符的字符串,比如","F#函数,但是调用者收到错误,表明因为","不是a string[].

[<EntryPoint>]
let main argv =
    let csv_fileH = initCsvLib "test1.csv" ","
Run Code Online (Sandbox Code Playgroud)

编写下面的库代码是为了创建自己的分隔符,但是传递分隔符会很好,因此可以读取管道和其他分隔文件.

namespace Toa.csv_lib
.
.
.
(* Contains various necessary open statements *)

[<AutoOpen>]
module csv_lib =

    let initCsvLib fn =
        let csv_delim = ","
        let csv_fileH = new TextFieldParser(fn:string)
        csv_fileH.TextFieldType = FieldType.Delimited |> ignore
        csv_fileH.SetDelimiters(csv_delim) |> ignore
        csv_fileH
Run Code Online (Sandbox Code Playgroud)

将字符串类型转换为string []的最佳方法是什么?我一直在寻找微软的网站和其他地方.

arrays string f#

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

为什么迭代先前的读入序列会触发新的读取?

在这篇SO 帖子中,添加

 inSeq 
    |> Seq.length
    |> printfn "%d lines read"
Run Code Online (Sandbox Code Playgroud)

导致inSeq中的延迟序列被读入.

好的,我已经扩展了该代码,并希望首先打印出该序列(请参阅下面的新程序).

当Visual Studio(2012)调试器到达时

inSeq |> Seq.iter (fun x -> printfn "%A" x)
Run Code Online (Sandbox Code Playgroud)

读取过程重新开始.当我inSeq使用调试器检查时,inSeq似乎没有元素.

如果我有第一个阅读元素inSeq,我怎么能看到(检查)这些元素,为什么它们不打印出来Seq.iter

open System
open System.Collections.Generic
open System.Text
open System.IO
#nowarn "40"


let rec readlines () =
    seq {
        let line = Console.ReadLine()
        if not (line.Equals("")) then
            yield line
            yield! readlines ()
}

[<EntryPoint>]
let main argv = 
    let inSeq = readlines ()

    inSeq 
    |> Seq.length
    |> printfn …
Run Code Online (Sandbox Code Playgroud)

f# seq

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

无法弄清楚如何从小型 Clojure 函数中删除字符串无法转换为 clojure.lang.IFn

我有一个小的 clojure 功能:

(defn split-legal-ref
  "Highly specific function that expects one AssessPro map and a map key,
   from which book and page will be extracted."
  [assess-pro-acct extract-key]
  (let [[book page] (cstr/split (extract-key assess-pro-acct) #"-")]
    (list (cstr/trim book) (cstr/trim page))))
Run Code Online (Sandbox Code Playgroud)

鉴于此:(extract-key assess-pro-acct) #"-")extract-key的值为:legal_ref。因此,它927-48从地图中获取单个值并使用“-”拆分该值。当没有这些好的值之一时,我只需要抓住。这就是 split 返回 nil 的地方。

因此,我试图用以下内容替换原始功能时陷入困境。

(def missing-book 888)
(def missing-page 999)
.
.
.
(defn split-legal-ref
  "Highly specific function that expects one AssessPro map and a map key,
   from which …
Run Code Online (Sandbox Code Playgroud)

clojure

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

如何在C中编写*nix的基本名称

我想从字符串中提取基本名称,比如

/opt/home/etc/sample
Run Code Online (Sandbox Code Playgroud)

也就是说,我想解析一个返回大字符串的字符串sample,或者解析最后一个/字符后面的子字符串.字符串可以是任何长度.

怎么可以这样做?

c substring

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

为什么Python print()函数返回EOL?

我试图使用Python print()函数与多行字符串文字 - 我使用垂直省略号来表示字符串文字的多行而不是内容.

print("Here is the data table: 
        .
        .
        .                   ")
Run Code Online (Sandbox Code Playgroud)

为什么我在扫描字符串文字错误时会收到EOL.

为什么会这样?

python string

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

为什么程序调用strncat()会产生分段错误?

我无法弄清楚为什么我的g ++编译程序会在strncat()调用时出错.

我一直在这个网站和一般谷歌搜索,并发现了一些类似的问题,但没有找到任何适合我的解决方案.这是一个更大的代码的一部分,我只能做很多事情来重新定义变量,因为代码不是我的.

代码的所有这一部分都是在文件的最后一行读取,删除相关数据并连接到char*

当我运行它时,我会在线路上遇到分段错误 strncat(RAM,nextchar,1)

char line[256]={"0"};
char nextchar[10]={"0"};
int length=0;
double rac;
double decc;
bool SPACE=false;
char * RAM="RA: ";
char * DECM="DEC: ";
if(AutoColData.good()){
    while(!AutoColData.eof()) AutoColData.getline(line,256);
    for(int i=0;i<strlen(line);i++){
        nextchar[0]=line[i];
        cout<<line[i];
        if(isspace(nextchar[0])&& !SPACE)   SPACE=!SPACE;
        else if(SPACE && !isspace(nextchar[0])){
            SPACE=!SPACE;
            length++;
        }
        if(length==6) {
          cout<<"\n"<<RAM<<nextchar<<"\n";
          strncat(RAM,nextchar,1);
        }
        else if(length==7) strcat(DECM,nextchar);
    }
}
Run Code Online (Sandbox Code Playgroud)

这里有一些草率的选择,我知道(整个"太空"的事情很乱).但我认为没有任何理由可以解决Seg Fault问题.它运行良好,直到与strncat()的行.cout工作正常,两个字符串都打印并在其中包含正确的数据但是strncat失败了.我尝试过使用malloc(),字符串,似乎没什么用.如果有人能指出我正在做什么愚蠢的事情,那将是非常有帮助的.谢谢.

c++ segmentation-fault

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

为什么我的程序打印fffffff0?

我想了解为什么我的计划

#include<stdio.h>    
void main()  
{  
    printf("%x",-1<<4);  
}  
Run Code Online (Sandbox Code Playgroud)

打印fffffff0.

这个程序在做什么,<<操作员做什么?

c

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

为什么循环语句的绑定向量数量是奇数?

我一直在查看示例和文档;我不明白为什么我会得到

loop requires an even number of forms in binding vector错误。

我相信问题出在循环和初始化使用索引中。我只是不明白我做错了什么。

(def usage-vec-len 13)

(defn ret-usage-indicies
"Takes a billed water consumption amount, and returns a vector of the ranges."
[reading]
(let [usage-indicies [0 0 0 0 0 0 0 0 0 0 0 0 0] curr-idx (- usage-vec-len 1)]
 (loop [curr-reading reading ui usage-indicies curr-idx]
.
.
.
 (if (= remaining-reading 0)
 ui
 (recur remaining-reading (assoc ui curr-idx curr-reading) (dec curr-idx)))))))
Run Code Online (Sandbox Code Playgroud)

clojure

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

标签 统计

clojure ×3

c ×2

f# ×2

string ×2

arrays ×1

c++ ×1

perl ×1

python ×1

segmentation-fault ×1

seq ×1

substring ×1

update-in ×1