小编jac*_*646的帖子

面向对象编程和过程编程有什么区别?

从我可以收集到的过程编程使用过程和函数或子例程。它提供了有关如何操作的分步说明。虽然另一方面面向对象我并不完全确定。我所看到的只是它使用“对象”并且几乎​​相同?有人可以澄清并解释对象究竟是什么吗?

oop paradigms procedural-programming

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

使用 PowerShell -Pattern 在多个文件上搜索多个值

团队——我有一段按设计工作的代码片段。它将扫描特定单词的文件夹层次结构中的所有文件,然后返回找到该单词的所有实例的文件的重复数据删除文件路径。

$properties = @(
    'Path'
)

Get-ChildItem -Path \\Server_Name\Folder_Name\* -recurse |  
Select-String -Pattern ‘Hello’ | 
Select-Object $properties -Unique |
Export-Csv \\Server_Name\Folder_Name\File_Name.csv -NoTypeInformation

Run Code Online (Sandbox Code Playgroud)

我想

  1. 展开此代码以便能够一次搜索多个单词。因此,所有找到“你好”或“Hola”的情况......如果可能的话,可能还有一个完整的单词列表。
  2. 让代码不仅返回文件路径,还返回绊倒它的单词......如果两个单词都绊倒了它,那么同一路径的多行

我发现了一些关于使用以下方法进行多词搜索的文章:

  where { $_ | Select-String -Pattern 'Hello' } |
  where { $_ | Select-String -Pattern 'Hola' } |
Run Code Online (Sandbox Code Playgroud)

或者

Select-String -Pattern ‘(Hello.Hola)|(Hola.Hello)’ 
Run Code Online (Sandbox Code Playgroud)

这些代码将运行......但在输出文件中没有返回任何数据......它只是带有标题“路径”的空白。

我遗漏了一些明显的东西......有人能看到一双新鲜的眼睛吗?

多发性硬化症

powershell

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

带有泛型返回类型的方法中的Java编译错误

我无法解释为什么这个简单的代码无法编译.

class Foo {
    <T extends Foo> T method() {
        return this;
    }
}
Run Code Online (Sandbox Code Playgroud)

错误是:Type mismatch: cannot convert from Foo to T.
为什么不?T被定义为Foo或其子类.


更新:我在Java Tutorials中找到了关于泛型方法的简明建议.

通用方法允许使用类型参数来表示方法和/或其返回类型的一个或多个参数的类型之间的依赖关系.如果没有这种依赖关系,则不应使用通用方法.

我的解释是,通用方法仅适用于两种情况.

  1. 两个(或更多)方法的参数类型之间存在依赖关系.
  2. 方法的返回类型与其参数类型中的一个(或多个)之间存在依赖关系.

显然,有问题的简单代码在其参数和返回类型之间没有依赖关系,因为没有参数.所以通用方法是不合适的.


更新2:现在我已经意识到这一点,我在开源项目中注意到这种反模式的例子.


UPDATE3:我认为我已经找到了不涉及多个参数或返回类型的泛型方法的要求.多重继承似乎是Java教程中上述规则的一个例外.

<T extends Foo & Bar> void method(T foobar) {
    // Call Foo method.
    // Call Bar method.
}
Run Code Online (Sandbox Code Playgroud)

值得注意的是,Collectors实用程序类包括toList()不带参数的泛型方法.在这种情况下,泛型类型仅参数化返回类型,这可能比实际返回类型的泛型类型更安全.

java generics return-type

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

在 Perl 中,如何生成所有可能的模式,

我可以知道如何(在 Perl 中)在文件和屏幕输出中的所有可能模式下生成,并且可以访问模式中的每个插槽,?!

非常感谢大家,

输入值,

1,没有。插槽 ,

2,没有。的对象,

例如 ,

不。对象 = 2 , { a , b } ,

不。插槽数 = 4 ,

然后,输出,

不。在所有可能的模式中 = 2^4 = 16 ,

然后 ,

行是 16 ,

列是 8 ,

eachSlot[i][j] = 允许分配或更改其值,

然后,输出格式看起来像,

啊啊啊

aaab

阿巴

阿布

阿巴

阿巴

阿爸

艾伯

咩咩

巴布

巴巴

巴布

巴阿

巴布

巴巴

bbbb

和 ,

如果看到 'a' ,然后做某事 actionX ,

如果看到 'b' ,那么做某事,

非常感谢所有的建议和帮助,

perl combinations

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