通道切片的整数

时间:2017-04-14 11:21:05

标签: go

我想创建一个通道并包含整数的切片。

test := make(chan []int)
test <- 5

这是我初始化它的方式,但我不知道现在如何传递值,因为对于切片我们会使用追加但是对于通道我们使用&lt; -

发送数据

我尝试过只使用&lt; - 和追加,两者合并如下,无法让它工作

test <- append(test, 5)

2 个答案:

答案 0 :(得分:1)

这叫做

  

缓冲频道

正确的结构是

<?php # Script 3.5 - Registration Form
$page_title = 'Registration Form';
include ('./includes_css/header.html');
?>


<div align="center"><h2>Registration Form</h2>
<form action="register.php" method="post">

<legend>Enter your information in the form below:</legend><br/>

<p><b>First Name:</b> <input type="text" size="21" name="first_name" value="<?php if (isset($_POST['first_name'])) echo $_POST['first_name']; ?>"/></p>
<p><b>Last Name:</b> <input type="text" size="21"name="last_name" value="<?php if (isset($_POST['last_name'])) echo $_POST['last_name']; ?>"/></p>
<p><b>Phone No:</b> <input type="text" size="22"name="phone" value="<?php if (isset($_POST['phone'])) echo $_POST['phone']; ?>"/></p>
<p><b>Email Address:</b> <input type="text" size="18"name="email" /value="<?php if (isset($_POST['email'])) echo $_POST['email']; ?>"/></p>
<p><b>Programme:</b> <name="programme" value="<?php if (isset($_POST['programme'])) echo $_POST['programme']; ?>"/>
<?php

$programme = array ('null' => 'SELECT','BIMD', 'BSE', 'BCEM', 'BCA', 'DIM', 'DCNET',
'DIT', 'DIA');
// Make the programme pull-down menu.
echo '<select name="programme">';
foreach ($programme as $key => $value) {
echo "<option value=\"$value\">$value</option>\n";
}
echo '</select>';
?>
<div align="center"><input type="submit" name="submit" value="Register" /></div>
<input type="hidden" name="submitted" value="TRUE" />
</form>

Golang之旅有一个例子:

https://tour.golang.org/concurrency/3

答案 1 :(得分:1)

您定义了[]int的频道,但正尝试向其发送int。你必须向它发送一片int,然后接收器使用该片。

这里有一个工作示例:https://play.golang.org/p/TmcUKU8G-1

请注意,我将4附加到things切片而非通道本身

package main

import (
    "fmt"
)

func main() {
    c := make(chan []int)

    things := []int{1, 2, 3}

    go func() {
        c <- things
    }()

    for _, i := range <-c {
        fmt.Println(i)
    }

    go func() {
        c <- append(things, 4)
    }()

    for _, i := range <-c {
        fmt.Println(i)
    }
}

输出:

1
2
3
1
2
3
4