小编Mar*_*iro的帖子

函数声明语法:函数名前的括号内的东西

对不起,我不能在问题标题中更具体,但我正在阅读一些Go代码,我遇到了这种形式的函数声明:

func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

来自https://github.com/mattermost/platform/blob/master/api/context.go

func (s *GracefulServer) BlockingClose() bool {
    ...
}
Run Code Online (Sandbox Code Playgroud)

来自https://github.com/braintree/manners/blob/master/server.go

什么是(h handler)(s *GracefulServer)括号之间是什么意思?考虑到括号之间事物的含义,整个函数声明意味着什么?

编辑

与Go的功能和方法的区别什么不重复:这个问题来找我,因为我不知道函数名之前括号中的内容是什么,不是因为我想知道函数和方法之间有什么区别......如果我知道这个声明是一种方法我就不会'我们首先提出了这个问题.如果某人有一天和我有同样的疑问,我不相信她会去寻找"golang方法",因为她不知道情况就是这样.这就像想知道"sigma"字母在数学表达式之前的含义(不知道它意味着求和),并且有人说它是总和与其他事物之间差异的重复.

此外,这个问题的简短回答("它是接收者")无法回答"功能和方法之间的区别".

go

196
推荐指数
3
解决办法
3万
查看次数

cabal:如何自动更新.cabal文件中的build-depends字段?

有没有办法自动更新.cabal文件中build-depends字段?例如,如果我们从以下文件开始:.cabal

name:           HUnit
version:        1.1.1
synopsis:       A unit testing framework for Haskell
homepage:       http://hunit.sourceforge.net/
category:       Testing
author:         Dean Herington
license:        BSD3
license-file:   LICENSE
cabal-version:  >= 1.10
build-type:     Simple

library
  build-depends:      base >= 2 && < 4
  exposed-modules:    Test.HUnit.Base, Test.HUnit.Lang,
                      Test.HUnit.Terminal, Test.HUnit.Text, Test.HUnit
  default-extensions: CPP
Run Code Online (Sandbox Code Playgroud)

然后,安装一个包:

cabal install warp
Run Code Online (Sandbox Code Playgroud)

现在,我必须添加warp >=3.0 && <3.1到该build-depends字段,使文件看起来像这样:

name:           HUnit
version:        1.1.1
synopsis:       A unit testing framework for Haskell
homepage:       http://hunit.sourceforge.net/
category:       Testing
author:         Dean Herington
license: …
Run Code Online (Sandbox Code Playgroud)

haskell cabal

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

使用Enzyme在组件无状态功能时按显示名称查找组件

我有以下组件:

// Hello.js
export default (React) => ({name}) => {
  return (
    <div>
      Hello {name ? name : 'Stranger'}!
    </div>
  )
}

// App.js
import createHello from './Hello'

export default (React) => () => {
  const Hello = createHello(React)
  const helloProps = {
    name: 'Jane'
  }
  return (
    <Hello { ...helloProps } />
  )
}

// index.js
import React from 'react'
import { render } from 'react-dom'
import createApp from './App'

const App = createApp(React)

render(
  <App />,
  document.getElementById('app')
) …
Run Code Online (Sandbox Code Playgroud)

testing unit-testing stateless reactjs enzyme

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

Elixir Ecto:如何使用belongs_to和has_many编写迁移?

我有两个型号,Person并且Pet,我希望Person能够有很多宠物,但Pet属于只有一个人:

defmodule MyApp.Person do
  use MyApp.Web, :model

  alias MyApp.Pet

  schema "persons" do
    field :name, :string
    has_many :pets, Pet
    timestamps()
  end

  def changeset(struct, params \\ %{}) do
    struct
    |> cast(params, [])
    |> validate_required([])
  end
end
Run Code Online (Sandbox Code Playgroud)

defmodule MyApp.Pet do
  use MyApp.Web, :model

  alias MyApp.Person

  schema "pets" do
    field :name, :string
    belongs_to :person, Person
    timestamps()
  end

  def changeset(struct, params \\ %{}) do
    struct
    |> cast(params, [])
    |> validate_required([]) …
Run Code Online (Sandbox Code Playgroud)

postgresql elixir ecto phoenix-framework

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

Elixir:生成给定参数的'n`次出现列表(类似于Haskell的复制)

我想要一个Elixir函数来生成一个n参数出现列表,类似于Haskell的replicate函数:

Input: replicate 3 5

Output: [5,5,5]

Input: replicate 5 "aa"

Output: ["aa","aa","aa","aa","aa"]

Input: replicate 5 'a'

Output: "aaaaa"
Run Code Online (Sandbox Code Playgroud)

我已经创建了一个"复制"整数n时间的函数:

import String

def replicate(number, n)
  String.duplicate(to_string(number), n) 
  |> split("", trim: true) 
  |> Enum.map(fn n -> String.to_integer(n) end
end
Run Code Online (Sandbox Code Playgroud)

但这与规格不符:(.你能帮帮我吗?

haskell list elixir

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

如何使用Phoenix框架呈现JSON文件?

我想将数据用作手动编写的JSON文件,而不是从数据库中获取数据.假设我的数据是这样的:

[
    { "id": 1, "name": "Alice", "email": "alice@example.com" },
    { "id": 2, "name": "Bob", "email": "bob@example" },
    { "id": 3, "name": "Charles", "email": "charles@example.com"}
]
Run Code Online (Sandbox Code Playgroud)

它写在一个名为的文件中MOCK_DATA.json.当我访问localhost:port/api/v1/users网址时,我该怎么做才能呈现此文件?如何localhost:port/api/v1/users/1显示网址{ "id": 1, "name": "Alice", "email": "alice@example.com" }

json elixir phoenix-framework

5
推荐指数
2
解决办法
4424
查看次数

ScalaCheck:生成任意类型的任意函数

我已经实现了以下功能:

/**
  * Returns a function h , which is the composition of the functions f and g.
  */
def compose[A, B, C](g: B => C, f: A => B): A => C = f.andThen(g)
Run Code Online (Sandbox Code Playgroud)

我正在尝试用ScalaCheck测试它。我可以生成以下测试,这些测试可以编译并通过:

import org.scalatest.prop.PropertyChecks
import org.scalatest.{FlatSpec, Matchers}

class ComposeSpec extends FlatSpec with Matchers with PropertyChecks {

  "Compose" should "return a function h , which is the composition of the 
functions f and g" in {

    forAll { (a: Int, g: Int => Int, f: Int …
Run Code Online (Sandbox Code Playgroud)

scala scalatest scalacheck

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

如何测试React组件是否包含带有Tape和Enzyme的另一个组件?

假设我有以下React组件:

import React from 'react'
import AppBar from 'material-ui/lib/app-bar'

class NavBar extends React.Component {
  render () {
    return (
      <div>
        <AppBar
          title='My NavBar Title'
        />
      </div>
    )
  }
}

export default NavBar
Run Code Online (Sandbox Code Playgroud)

我想设置一个测试,以确保用户在渲染时看到一个材料-ui AppBarNavBar,使用TapeEnzyme:

import NavBar from './NavBar'
import React from 'react'
import test from 'tape'
// import { I don't know exactly what to import here. Maybe `shallow`? } from 'enzyme'

test('NavBar component test', (assert) => {
  test('I should see …
Run Code Online (Sandbox Code Playgroud)

testing unit-testing reactjs enzyme

3
推荐指数
2
解决办法
5202
查看次数

Ecto,Phoenix:如何使用 embeds_many 声明更新模型?

我有两个模型OwnerProperty,其中 的架构Owner有一个embeds_many声明,如下所示:

defmodule MyApp.Owner do
  use MyApp.Web, :model

  alias MyApp.Property

  schema "owners" do
    field name, :string
    embeds_many :properties, Property
    timestamps()
  end

  @doc """
  Builds a changeset based on the `struct` and `params`.
  """
  def changeset(struct, params \\ %{}) do
    struct
    |> cast(params, [])
    |> validate_required([])
  end
end
Run Code Online (Sandbox Code Playgroud)

和这个:

defmodule MyApp.Property do
  use MyApp.Web, :model

  embedded_schema do
    field :name, :string
    field :value, :float, default: 0
  end

  def changeset(struct, params \\ %{}) do
    struct …
Run Code Online (Sandbox Code Playgroud)

postgresql elixir ecto phoenix-framework

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

如何拆分此类串联字符串:“howdoIsplitthis?”

假设我有一个像这样的字符串:

"IgotthistextfromapdfIscraped.HowdoIsplitthis?"
Run Code Online (Sandbox Code Playgroud)

我想制作:

"I got this text from a pdf I scraped. How do I split this?"
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

string algorithm tokenize text-segmentation

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

Golang:如何将命令行参数转换为整数?

我想创建一个脚本,对用户提供的参数进行插入排序,如下所示:

    $ insertionSort 1 2 110 39
Run Code Online (Sandbox Code Playgroud)

我希望它能回归:

    [1 2 39 110]
Run Code Online (Sandbox Code Playgroud)

但它返回:

    [1 110 2 39]
Run Code Online (Sandbox Code Playgroud)

我认为这是因为os.Args数组中的元素是字符串.所以,我的问题是如何将os.Args数组的元素转换为整数?这是我的代码:

    package main

    import (
        "fmt"
         "os"
         "reflect"
         "strconv"
    )

    func main() {
        A := os.Args[1:]

        for i := 0; i <= len(A); i++ {
          strconv.Atoi(A[i])
          fmt.Println(reflect.TypeOf(A[i]))
        }

         for j := 1; j < len(A); j++ {
             key := A[j]
             i := j - 1
             for i >= 0 && A[i] > key {
               A[i+1] = A[i]
               i = i - 1
               A[i+1] …
Run Code Online (Sandbox Code Playgroud)

sorting algorithm type-conversion go command-line-arguments

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

使用清除密钥进行3DES加密

我正在尝试使用以下界面编写Cobol程序:

目的

接收明确的加密密钥和明文,并使用3DES算法返回加密文本.

输入:

  • CLEAR_KEY:一个32个字符的十六进制字符串,用作加密密钥.
  • CLEAR_TEXT:一个16个字符的字符串.

输出:

  • CYPHERED_TEXT:一个16个字符的字符串.

我可以访问DB2ICSF可调用服务.

我尝试了这三种方法:

使用CSNBSYE

77 CSNBSYE                  PIC X(7) VALUE 'CSNBSYE'.
01 CSNBSYE-PARAMETERS.
   02 RETURN-CODE           PIC 9(8) COMP.
   02 REASON-CODE           PIC 9(8) COMP.
   02 EXIT-DATA-LENGTH      PIC 9(8) COMP.
   02 EXIT-DATA             PIC X(32).
   02 RULE-ARRAY-COUNT      PIC 9(8) COMP.
   02 RULE-ARRAY            PIC X(8).
   02 KEY-IDENTIFIER-LENGTH PIC 9(8) COMP.
   02 KEY-IDENTIFIER        PIC X(32).
   02 KEY-PARMS-LENGTH      PIC 9(8) COMP.
   02 KEY-PARMS             PIC X(32).
   02 BLOCK-SIZE            PIC 9(8) COMP.
   02 INIT-VECTOR-LENGTH    PIC …
Run Code Online (Sandbox Code Playgroud)

encryption db2 cobol 3des zos

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

Haskell:Data.List.isInfixOf函数如何工作?

我一直试图isInfixOfData.List模块中理解功能,但无济于事.这是代码:

     isInfixOf               :: (Eq a) => [a] -> [a] -> Bool
     isInfixOf needle haystack = any (isPrefixOf needle) (tails haystack)

     -- Example:
     --
     -- >isInfixOf "Haskell" "I really like Haskell." -> True
     -- >isInfixOf "Ial" "I really like Haskell." -> False
Run Code Online (Sandbox Code Playgroud)

any如果列表中的至少一个项目满足条件,则返回true.它的类型是(a -> Bool) -> [a] -> Bool

isPrefixOftails功能的代码是这些:

    isPrefixOf :: (Eq a) => [a] -> [a] -> Bool
    isPrefixOf [] _ = True
    isPrefixOf _ [] = False …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming

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