标签: implementation

如何在Objective-C中实现@encode编译器指令?

任何人都可以解释@encode如何将给定对象,结构或数据类型中存在的数据类型元素提取到类型定义中以用作实例化的类描述符?

或者可能是一些指向某些资源的指针,用于了解新预处理程序指令的实现?

c implementation encode objective-c c-preprocessor

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

如何判断对象是否支持标量比较?

有没有人有一个快速的片段或方向我将如何检查一个给定的类是否支持>,=<运算符?

给定一个传入的对象,我正在寻找实现以下逻辑的代码:

If GetType(someObj).SupportsScalarComparisons() Then ... 
Run Code Online (Sandbox Code Playgroud)

我不知道这是反映的情况,还是?提前致谢.

vb.net comparison implementation

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

跨流行工具链的标准容器重新分配乘数

容器喜欢std::basic_stringstd::vector在内部容量耗尽时执行自动重新分配.该标准规定,在重新分配后,.capacity() >= .size().

在执行重新分配时,主流工具链使用了哪些实际乘数?


更新

到目前为止,我有:

Dinkumware:1.5(配备MSVS和可能的ICC)

GNU libstdc ++:2(附带GCC和可能的ICC)

RW/Apache stdcxx:1.618

STLport:2

c++ implementation containers

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

Haskell中的zip函数

zip函数的实现,它将两个列表作为参数并返回一对新的对列表.到目前为止我得到了这个

myZip [] [] = []
myZip (x:xs) (y:ys) = [(x,y)] ++ myZip xs ys
Run Code Online (Sandbox Code Playgroud)

任何帮助?

recursion implementation haskell

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

如何强制子类调用抽象实现的方法

基本上,我想要做的是强制子类调用抽象超类方法(在子类中实现),因此每次创建新子类时我都不必显式地编写它.

我在超类的构造函数中写了一次,因为我希望它强制它用于每个实现.

public abstract class SupahClass {
    public SupahClass() {
        doStuff(); // It IS executed when the subclass constructor is called
        init(); // NOT executed, even though it's implemented
    }

    private void doStuff() { ... }        

    protected abstract void init();
}

public class SomeSubClass extends SupahClass {

    // The problem lies HERE: this is executed AFTER init() ... so it gets NULL again
    private TextBox myTextBox = null;

    public SomeSubClass() {
        super(); // invokes the super constructor, so …
Run Code Online (Sandbox Code Playgroud)

java inheritance implementation abstract

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

要为PGP哈希的数据长度

我终于设法验证了一些简单的PGP签名消息块.但是,我发现由于某种原因,我的实现限制了我验证长度为9-16个字节的数据.不会少.不再.

是否有某些指令(RFC4880或其他地方)指定如何处理任何长度的明文数据?也许我错过了某种填充?PKCS1?

我敢肯定我被格式化的数据正确地散列,因为在RFC 4880秒5.2.4说明书说的文本文档,只需更换所有\n\r\n添加的拖车.由于我的测试值是单行数据,因此不需要替换任何内容

除非另有说明,否则所有这些值均以10为基数:

// DSA public key values
p = 175466718616740411615640156350265486163809613514213656685227237159351776260193236923030228927905671867677337184318134702903960237546408302010360724274436019639502405323187799029742776686067449287558904042137172927936686590837020160292525250748155580652384740664931255981772117478967314777932252547256795892071
q = 809260232002608708872165272150356204306578772713
g = 127751900783328740354741342100721884490035793278553520238434722215554870393020469115393573782393994875216405838455564598493958342322790638050051759023658096740912555025710033120777570527002197424160086000659457154926758682221072408093235236853997248304424303705425567765059722098677806247252106481642577996274
y = 172935968966072909036304664996424500241381878537444332146572958203083745609400290814117451480512268901233962890933482206538294509037615827035398352528065134903071886710296983781453184598843331365336270501467458073523376152406987560592548479865116940266729198119357206749848310472131186772143408998928864559411
Run Code Online (Sandbox Code Playgroud)

不工作:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

abcd
-----BEGIN PGP SIGNATURE-----
Version: BCPG v1.39

iFsEARECABsFAk/tB28UHGFiYyA8bWFrY21AYWFhLmNvbT4ACgkQMFIlRc933Ya2
RwCfdMyI08Iz0rDXVHOPlGA3s5Y9j/8An2He7+hHjWfGJNoOJT7gAxqJaoLo
=I2rT
-----END PGP SIGNATURE-----

data hashed (in hex): 6162636404011102001b05024fed076f141c616263203c6d616b636d406161612e636f6d3e04ff00000021

r = 666804200764671083282351405489424949903645052927
s = 558743769080942454889260816818443017172325925608

w =  702955297882281869313155599553522395227576660460 // s^-1 mod q
u1 = 190417717173929082607343542521304347388874234334
u2 = 306786785479358548892951170619047936651163362761
v = g^u1 * y^u2 % p % …
Run Code Online (Sandbox Code Playgroud)

hash implementation cryptography pgp dsa

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

为什么分裂('')试图(太)聪明?

我刚刚发现以下奇怪的行为String#split:

"a\tb c\nd".split
=> ["a", "b", "c", "d"]

"a\tb c\nd".split(' ')
=> ["a", "b", "c", "d"]

"a\tb c\nd".split(/ /)
=> ["a\tb", "c\nd"]
Run Code Online (Sandbox Code Playgroud)

(string.c from 2.0.0)长度超过200行,包含如下所示的段落:

/* L 5909 */
else if (rb_enc_asciicompat(enc2) == 1) {
    if (RSTRING_LEN(spat) == 1 && RSTRING_PTR(spat)[0] == ' '){
        split_type = awk;
    }
}
Run Code Online (Sandbox Code Playgroud)

后来,在awksplit类型的代码中,实际参数甚至不再使用,并且与plain相同split.

  • 有没有人觉得这有点破碎?
  • 这有充分的理由吗?
  • 这样的"魔术"是否比大多数人在Ruby中想象的更频繁?

ruby string implementation split

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

Python for循环实现

有人能告诉我Python的for循环是如何实现的吗?我问这个的原因是因为当我期望相同的行为(假设cases只是一组元素)时,我在以下两个for循环中得到不同的行为:

首先是循环:

for case in cases:
    blah
Run Code Online (Sandbox Code Playgroud)

第二个循环:

for i in range(len(cases)):
    case = cases[i]
    blah
Run Code Online (Sandbox Code Playgroud)

我在多线程环境中运行我的代码.

基本上,我想知道Python的for循环迭代集合(如第一个for循环)是否只是第二个的快捷方式.当我们使用python for循环时究竟发生了什么,是否有任何潜在的优化/实现可能导致我观察到的行为差异?

python implementation for-loop

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

在Go中如何实现接口变量?

在下面的代码片段中,我想了解iPerson当其内容仍然未初始化时究竟存储了什么:只是一个0字节的值?或者它实际上是引擎盖下的指针(当然也初始化为0字节)?无论如何,究竟发生了iPerson = person什么?

如果iPerson = person制作副本person,当实现IPerson但具有不同大小/内存占用的对象被分配给时,会发生什么iPerson?我理解的iPerson是存储在堆栈中的变量,因此它的大小必须是固定的.这是否意味着堆实际上是在引擎盖下使用,所以iPerson实际上是作为指针实现的,但是赋值仍然复制对象,如上面的代码所示?这是代码:

type Person struct{ name string }

type IPerson interface{}

func main() {
    var person Person = Person{"John"}
    var iPerson IPerson
    fmt.Println(person)  // => John
    fmt.Println(iPerson) // => <nil>  ...so looks like a pointer

    iPerson = person     //           ...this seems to be making a copy
    fmt.Println(iPerson) // => John

    person.name = "Mike"
    fmt.Println(person)  // => Mike
    fmt.Println(iPerson) // => …
Run Code Online (Sandbox Code Playgroud)

implementation pointers interface go

6
推荐指数
3
解决办法
3784
查看次数

Android:google的headergridview示例实现

我搜索了网络,除了课程的源代码之外找不到任何东西.我还是初学者,我不完全理解这个课程应该如何实现

https://android.googlesource.com/platform/packages/apps/Gallery2/+/idea133/src/com/android/photos/views/HeaderGridView.java

有人可以为我提供这样一个类的编码实现,比如两个标题,4个标题视图,一个顶部标题(网格视图上方),一个底部页脚(网格视图下方),以及如何实现的演示可过滤?(通过视图中的文字说)

非常感谢

implementation android gridview

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